A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::RadioEnvironmentMapHelper Class Reference

Generates a 2D map of the SINR from the strongest transmitter in the downlink of an LTE FDD system. More...

#include "radio-environment-map-helper.h"

+ Inheritance diagram for ns3::RadioEnvironmentMapHelper:
+ Collaboration diagram for ns3::RadioEnvironmentMapHelper:

Classes

struct  RemPoint
 A complete Radio Environment Map is composed of many of this structure. More...
 

Public Member Functions

 RadioEnvironmentMapHelper ()
 
 ~RadioEnvironmentMapHelper () override
 
void DoDispose () override
 Destructor implementation.
 
uint16_t GetBandwidth () const
 
void Install ()
 Deploy the RemSpectrumPhy objects that generate the map according to the specified settings.
 
void SetBandwidth (uint16_t bw)
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Private Member Functions

void DelayedInstall ()
 Scheduled by Install() to perform the actual generation of map.
 
void Finalize ()
 Called when the map generation procedure has been completed.
 
void PrintAndReset ()
 Go through every listener, write the computed SINR, and then reset it.
 
void RunOneIteration (double xMin, double xMax, double yMin, double yMax)
 Mobilize all the listeners to a specified area.
 

Private Attributes

uint16_t m_bandwidth
 The Bandwidth attribute.
 
Ptr< SpectrumChannelm_channel
 The Channel attribute, which is a direct pointer to the DL channel object for which will be created the REM.
 
std::string m_channelPath
 The ChannelPath attribute.
 
uint16_t m_earfcn
 The Earfcn attribute.
 
uint32_t m_maxPointsPerIteration
 The MaxPointsPerIteration attribute.
 
double m_noisePower
 The NoisePower attribute.
 
std::ofstream m_outFile
 Stream the output to a file.
 
std::string m_outputFile
 The OutputFile attribute.
 
int32_t m_rbId
 The RbId attribute.
 
std::list< RemPointm_rem
 List of listeners in the environment.
 
bool m_stopWhenDone
 The StopWhenDone attribute.
 
bool m_useDataChannel
 The UseDataChannel attribute.
 
double m_xMax
 The XMax attribute.
 
double m_xMin
 The XMin attribute.
 
uint16_t m_xRes
 The XRes attribute.
 
double m_xStep
 Distance along X axis between adjacent listening points.
 
double m_yMax
 The YMax attribute.
 
double m_yMin
 The YMin attribute.
 
uint16_t m_yRes
 The YRes attribute.
 
double m_yStep
 Distance along Y axis between adjacent listening points.
 
double m_z
 The Z attribute.
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Detailed Description

Generates a 2D map of the SINR from the strongest transmitter in the downlink of an LTE FDD system.

For instructions on usage, please refer to the User Documentation.

Definition at line 33 of file radio-environment-map-helper.h.

Constructor & Destructor Documentation

◆ RadioEnvironmentMapHelper()

ns3::RadioEnvironmentMapHelper::RadioEnvironmentMapHelper ( )

Definition at line 39 of file radio-environment-map-helper.cc.

◆ ~RadioEnvironmentMapHelper()

ns3::RadioEnvironmentMapHelper::~RadioEnvironmentMapHelper ( )
override

Definition at line 43 of file radio-environment-map-helper.cc.

Member Function Documentation

◆ DelayedInstall()

void ns3::RadioEnvironmentMapHelper::DelayedInstall ( )
private

Scheduled by Install() to perform the actual generation of map.

If control channel is used for SINR calculation (the default), the delay is 2.6 milliseconds from the start of simulation. Otherwise, if data channel is used, the delay is 500.1 milliseconds from the start of simulation.

The method will divide the whole map into parts (each contains at most a certain number of SINR listening points), and then call RunOneIteration() on each part, one by one.

Definition at line 231 of file radio-environment-map-helper.cc.

References ns3::RadioEnvironmentMapHelper::RemPoint::bmm, ns3::CreateObject(), Finalize(), ns3::LteSpectrumValueHelper::GetSpectrumModel(), m_bandwidth, m_channel, m_earfcn, m_maxPointsPerIteration, m_rbId, m_rem, m_useDataChannel, m_xMax, m_xMin, m_xRes, m_xStep, m_yMax, m_yMin, m_yRes, m_yStep, NS_LOG_FUNCTION, ns3::RadioEnvironmentMapHelper::RemPoint::phy, RunOneIteration(), ns3::Simulator::Schedule(), and ns3::Seconds().

Referenced by Install().

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

◆ DoDispose()

void ns3::RadioEnvironmentMapHelper::DoDispose ( )
overridevirtual

Destructor implementation.

This method is called by Dispose() or by the Object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.

It is safe to call GetObject() from within this method.

Reimplemented from ns3::Object.

Definition at line 48 of file radio-environment-map-helper.cc.

References NS_LOG_FUNCTION.

◆ Finalize()

void ns3::RadioEnvironmentMapHelper::Finalize ( )
private

Called when the map generation procedure has been completed.

Definition at line 352 of file radio-environment-map-helper.cc.

References m_outFile, m_stopWhenDone, NS_LOG_FUNCTION, and ns3::Simulator::Stop().

Referenced by DelayedInstall().

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

◆ GetBandwidth()

uint16_t ns3::RadioEnvironmentMapHelper::GetBandwidth ( ) const
Returns
the bandwidth (in num of RBs) over which SINR is calculated

Definition at line 166 of file radio-environment-map-helper.cc.

References m_bandwidth.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetTypeId()

◆ Install()

void ns3::RadioEnvironmentMapHelper::Install ( )

Deploy the RemSpectrumPhy objects that generate the map according to the specified settings.

Definition at line 192 of file radio-environment-map-helper.cc.

References DelayedInstall(), ns3::Config::MatchContainer::Get(), ns3::Config::MatchContainer::GetN(), ns3::Object::GetObject(), ns3::Config::LookupMatches(), m_channel, m_channelPath, m_outFile, m_outputFile, m_rem, m_useDataChannel, NS_ABORT_MSG_IF, NS_FATAL_ERROR, NS_LOG_FUNCTION, ns3::Simulator::Schedule(), and ns3::Seconds().

+ Here is the call graph for this function:

◆ PrintAndReset()

void ns3::RadioEnvironmentMapHelper::PrintAndReset ( )
private

Go through every listener, write the computed SINR, and then reset it.

Definition at line 330 of file radio-environment-map-helper.cc.

References m_noisePower, m_outFile, m_rem, NS_LOG_FUNCTION, and NS_LOG_LOGIC.

Referenced by RunOneIteration().

+ Here is the caller graph for this function:

◆ RunOneIteration()

void ns3::RadioEnvironmentMapHelper::RunOneIteration ( double xMin,
double xMax,
double yMin,
double yMax )
private

Mobilize all the listeners to a specified area.

Afterwards, schedule a call to PrintAndReset() in 0.5 milliseconds.

Parameters
xMinX coordinate of the first SINR listening point to deploy.
xMaxX coordinate of the last SINR listening point to deploy.
yMinY coordinate of the first SINR listening point to deploy.
yMaxY coordinate of the last SINR listening point to deploy.

Definition at line 295 of file radio-environment-map-helper.cc.

References ns3::Object::GetObject(), m_rem, m_xMax, m_xStep, m_yMax, m_yMin, m_yStep, m_z, NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, PrintAndReset(), ns3::Simulator::Schedule(), and ns3::Seconds().

Referenced by DelayedInstall().

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

◆ SetBandwidth()

void ns3::RadioEnvironmentMapHelper::SetBandwidth ( uint16_t bw)
Parameters
bwthe bandwidth (in num of RBs) over which SINR is calculated

Definition at line 172 of file radio-environment-map-helper.cc.

References m_bandwidth, and NS_FATAL_ERROR.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_bandwidth

uint16_t ns3::RadioEnvironmentMapHelper::m_bandwidth
private

The Bandwidth attribute.

Definition at line 121 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), GetBandwidth(), and SetBandwidth().

◆ m_channel

Ptr<SpectrumChannel> ns3::RadioEnvironmentMapHelper::m_channel
private

The Channel attribute, which is a direct pointer to the DL channel object for which will be created the REM.

Alternatively, ChannelPath attribute can be used. If ChannelPath attribute is being used then the m_channel object is configured by using the ChannelPath attribute value.

Definition at line 142 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), GetTypeId(), and Install().

◆ m_channelPath

std::string ns3::RadioEnvironmentMapHelper::m_channelPath
private

The ChannelPath attribute.

If Channel attribute is not set, then ChannelPath will be used to determine the DL channel object for which the REM will be created.

Definition at line 130 of file radio-environment-map-helper.h.

Referenced by GetTypeId(), and Install().

◆ m_earfcn

uint16_t ns3::RadioEnvironmentMapHelper::m_earfcn
private

The Earfcn attribute.

Definition at line 120 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), and GetTypeId().

◆ m_maxPointsPerIteration

uint32_t ns3::RadioEnvironmentMapHelper::m_maxPointsPerIteration
private

The MaxPointsPerIteration attribute.

Definition at line 118 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), and GetTypeId().

◆ m_noisePower

double ns3::RadioEnvironmentMapHelper::m_noisePower
private

The NoisePower attribute.

Definition at line 144 of file radio-environment-map-helper.h.

Referenced by GetTypeId(), and PrintAndReset().

◆ m_outFile

std::ofstream ns3::RadioEnvironmentMapHelper::m_outFile
private

Stream the output to a file.

Definition at line 146 of file radio-environment-map-helper.h.

Referenced by Finalize(), Install(), and PrintAndReset().

◆ m_outputFile

std::string ns3::RadioEnvironmentMapHelper::m_outputFile
private

The OutputFile attribute.

Definition at line 132 of file radio-environment-map-helper.h.

Referenced by GetTypeId(), and Install().

◆ m_rbId

int32_t ns3::RadioEnvironmentMapHelper::m_rbId
private

The RbId attribute.

Definition at line 149 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), and GetTypeId().

◆ m_rem

std::list<RemPoint> ns3::RadioEnvironmentMapHelper::m_rem
private

List of listeners in the environment.

Definition at line 106 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), Install(), PrintAndReset(), and RunOneIteration().

◆ m_stopWhenDone

bool ns3::RadioEnvironmentMapHelper::m_stopWhenDone
private

The StopWhenDone attribute.

Definition at line 134 of file radio-environment-map-helper.h.

Referenced by Finalize(), and GetTypeId().

◆ m_useDataChannel

bool ns3::RadioEnvironmentMapHelper::m_useDataChannel
private

The UseDataChannel attribute.

Definition at line 148 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), GetTypeId(), and Install().

◆ m_xMax

double ns3::RadioEnvironmentMapHelper::m_xMax
private

The XMax attribute.

Definition at line 109 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), GetTypeId(), and RunOneIteration().

◆ m_xMin

double ns3::RadioEnvironmentMapHelper::m_xMin
private

The XMin attribute.

Definition at line 108 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), and GetTypeId().

◆ m_xRes

uint16_t ns3::RadioEnvironmentMapHelper::m_xRes
private

The XRes attribute.

Definition at line 110 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), and GetTypeId().

◆ m_xStep

double ns3::RadioEnvironmentMapHelper::m_xStep
private

Distance along X axis between adjacent listening points.

Definition at line 111 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), and RunOneIteration().

◆ m_yMax

double ns3::RadioEnvironmentMapHelper::m_yMax
private

The YMax attribute.

Definition at line 114 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), GetTypeId(), and RunOneIteration().

◆ m_yMin

double ns3::RadioEnvironmentMapHelper::m_yMin
private

The YMin attribute.

Definition at line 113 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), GetTypeId(), and RunOneIteration().

◆ m_yRes

uint16_t ns3::RadioEnvironmentMapHelper::m_yRes
private

The YRes attribute.

Definition at line 115 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), and GetTypeId().

◆ m_yStep

double ns3::RadioEnvironmentMapHelper::m_yStep
private

Distance along Y axis between adjacent listening points.

Definition at line 116 of file radio-environment-map-helper.h.

Referenced by DelayedInstall(), and RunOneIteration().

◆ m_z

double ns3::RadioEnvironmentMapHelper::m_z
private

The Z attribute.

Definition at line 123 of file radio-environment-map-helper.h.

Referenced by GetTypeId(), and RunOneIteration().


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