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.
 
- 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) 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.
 
virtual TypeId GetInstanceTypeId () const =0
 Get the most derived TypeId for this Object.
 
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 DoDispose ()
 Destructor implementation.
 
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.

Introspection did not find any typical Config paths.

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


Attributes

  • Bandwidth: Transmission Bandwidth Configuration (in number of RBs) over which the SINR will be calculated
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 25
    • Flags: constructwriteread
  • Channel: The DL spectrum channel for which the RadioEnvironment Map is to be generated. Alternatively ChannelPath attribute can be used.Only one of the two (Channel or ChannelPath) should be set.
  • ChannelPath: The path to the channel for which the Radio Environment Map is to be generated.This attribute is an alternative to Channel attribute and is only used if Channel is not set (equal to nullptr). Only one of the two (Channel or ChannelPath) should be set.
    • Set with class: ns3::StringValue
    • Underlying type: std::string
    • Initial value: /ChannelList/0
    • Flags: constructwriteread
  • Earfcn: E-UTRA Absolute Radio Frequency Channel Number (EARFCN) as per 3GPP 36.101 Section 5.7.3.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 0:65535
    • Initial value: 100
    • Flags: constructwriteread
  • MaxPointsPerIteration: Maximum number of REM points to be calculated per iteration. Every point consumes approximately 5KB of memory.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 1:4294967295
    • Initial value: 20000
    • Flags: constructwriteread
  • NoisePower: the power of the measuring instrument noise, in Watts. Default to a kT of -174 dBm with a noise figure of 9 dB and a bandwidth of 25 LTE Resource Blocks
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1.423e-13
    • Flags: constructwriteread
  • OutputFile: the filename to which the Radio Environment Map is saved
    • Set with class: ns3::StringValue
    • Underlying type: std::string
    • Initial value: rem.out
    • Flags: constructwriteread
  • RbId: Resource block Id, for which REM will be generated, default value is -1, what means REM will be averaged from all RBs
    • Set with class: ns3::IntegerValue
    • Underlying type: int32_t -2147483648:2147483647
    • Initial value: -1
    • Flags: constructwriteread
  • StopWhenDone: If true, Simulator::Stop () will be called as soon as the REM has been generated
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: true
    • Flags: constructwriteread
  • UseDataChannel: If true, REM will be generated for PDSCH and for PDCCH otherwise
    • Set with class: ns3::BooleanValue
    • Underlying type: bool
    • Initial value: false
    • Flags: constructwriteread
  • XMax: The max x coordinate of the map.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: constructwriteread
  • XMin: The min x coordinate of the map.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwriteread
  • XRes: The resolution (number of points) of the map along the x axis.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint32_t 2:65535
    • Initial value: 100
    • Flags: constructwriteread
  • YMax: The max y coordinate of the map.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 1
    • Flags: constructwriteread
  • YMin: The min y coordinate of the map.
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwriteread
  • YRes: The resolution (number of points) of the map along the y axis.
    • Set with class: ns3::UintegerValue
    • Underlying type: uint16_t 2:65535
    • Initial value: 100
    • Flags: constructwriteread
  • Z: The value of the z coordinate for which the map is to be generated
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0
    • Flags: constructwriteread

No TraceSources are defined for this type.
Size of this type is 688 bytes (on a 64-bit architecture).

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

Constructor & Destructor Documentation

◆ RadioEnvironmentMapHelper()

ns3::RadioEnvironmentMapHelper::RadioEnvironmentMapHelper ( )

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

◆ ~RadioEnvironmentMapHelper()

ns3::RadioEnvironmentMapHelper::~RadioEnvironmentMapHelper ( )
override

Definition at line 54 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 242 of file radio-environment-map-helper.cc.

References ns3::Object::AggregateObject(), ns3::RadioEnvironmentMapHelper::RemPoint::bmm, 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 59 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 363 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 177 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 ( )

◆ PrintAndReset()

void ns3::RadioEnvironmentMapHelper::PrintAndReset ( )
private

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

Definition at line 341 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 306 of file radio-environment-map-helper.cc.

References 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 183 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 132 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 153 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 141 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 131 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 129 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 155 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 157 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 143 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 160 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 117 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 145 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 159 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 120 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 119 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 121 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 122 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 125 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 124 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 126 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 127 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 134 of file radio-environment-map-helper.h.

Referenced by GetTypeId(), and RunOneIteration().


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