Class representing a SubBand, i.e., a frequency band subject to some regulations on duty cycle and transmission power. More...
#include "sub-band.h"
Public Member Functions | |
SubBand () | |
Default constructor. | |
SubBand (double firstFrequency, double lastFrequency, double dutyCycle, double maxTxPowerDbm) | |
Create a new SubBand by specifying all of its properties. | |
~SubBand () override | |
Destructor. | |
bool | BelongsToSubBand (double frequency) const |
Return whether or not a frequency belongs to this SubBand. | |
bool | BelongsToSubBand (Ptr< LogicalLoraChannel > channel) const |
Return whether or not a channel belongs to this SubBand. | |
double | GetDutyCycle () const |
Get the last frequency of the subband. | |
double | GetFirstFrequency () const |
Get the lowest frequency of the SubBand. | |
double | GetMaxTxPowerDbm () const |
Return the maximum transmission power that is allowed on this SubBand. | |
Time | GetNextTransmissionTime () |
Returns the next time from which transmission on this subband will be possible. | |
void | SetMaxTxPowerDbm (double maxTxPowerDbm) |
Set the maximum transmission power that is allowed on this SubBand. | |
void | SetNextTransmissionTime (Time nextTime) |
Update the next transmission time. | |
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< Object > | GetObject () 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< Object > | GetObject (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. | |
SimpleRefCount & | operator= (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 Attributes | |
double | m_dutyCycle |
The duty cycle that needs to be enforced on this subband. | |
double | m_firstFrequency |
Starting frequency of the subband, in MHz. | |
double | m_lastFrequency |
Ending frequency of the subband, in MHz. | |
double | m_maxTxPowerDbm |
The maximum transmission power that is admitted on this subband. | |
Time | m_nextTransmissionTime |
The next time a transmission will be allowed in this subband. | |
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. | |
Related Symbols inherited from ns3::ObjectBase | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
Class representing a SubBand, i.e., a frequency band subject to some regulations on duty cycle and transmission power.
Definition at line 30 of file sub-band.h.
ns3::lorawan::SubBand::SubBand | ( | ) |
|
override |
ns3::lorawan::SubBand::SubBand | ( | double | firstFrequency, |
double | lastFrequency, | ||
double | dutyCycle, | ||
double | maxTxPowerDbm ) |
Create a new SubBand by specifying all of its properties.
firstFrequency | The SubBand's lowest frequency [MHz]. |
lastFrequency | The SubBand's highest frequency [MHz]. |
dutyCycle | The duty cycle (as a fraction) allowed on this SubBand. |
maxTxPowerDbm | The maximum transmission power [dBm] allowed on this SubBand. |
Definition at line 34 of file sub-band.cc.
References NS_LOG_FUNCTION.
bool ns3::lorawan::SubBand::BelongsToSubBand | ( | double | frequency | ) | const |
Return whether or not a frequency belongs to this SubBand.
frequency | The frequency [MHz] we want to test against the current subband. |
Definition at line 65 of file sub-band.cc.
References m_firstFrequency, and m_lastFrequency.
Referenced by BelongsToSubBand(), and LogicalLoraChannelTest::DoRun().
bool ns3::lorawan::SubBand::BelongsToSubBand | ( | Ptr< LogicalLoraChannel > | channel | ) | const |
Return whether or not a channel belongs to this SubBand.
channel | The channel we want to test against the current subband. |
Definition at line 71 of file sub-band.cc.
References BelongsToSubBand().
double ns3::lorawan::SubBand::GetDutyCycle | ( | ) | const |
Get the last frequency of the subband.
Definition at line 59 of file sub-band.cc.
References m_dutyCycle.
double ns3::lorawan::SubBand::GetFirstFrequency | ( | ) | const |
Get the lowest frequency of the SubBand.
Definition at line 53 of file sub-band.cc.
References m_firstFrequency.
double ns3::lorawan::SubBand::GetMaxTxPowerDbm | ( | ) | const |
Return the maximum transmission power that is allowed on this SubBand.
Definition at line 96 of file sub-band.cc.
References m_maxTxPowerDbm.
Time ns3::lorawan::SubBand::GetNextTransmissionTime | ( | ) |
Returns the next time from which transmission on this subband will be possible.
Definition at line 84 of file sub-band.cc.
References m_nextTransmissionTime.
|
static |
Register this type.
Definition at line 23 of file sub-band.cc.
References ns3::TypeId::SetParent().
void ns3::lorawan::SubBand::SetMaxTxPowerDbm | ( | double | maxTxPowerDbm | ) |
Set the maximum transmission power that is allowed on this SubBand.
maxTxPowerDbm | The maximum transmission power [dBm] to set. |
Definition at line 90 of file sub-band.cc.
References m_maxTxPowerDbm.
void ns3::lorawan::SubBand::SetNextTransmissionTime | ( | Time | nextTime | ) |
Update the next transmission time.
This function is used by LogicalLoraChannelHelper, which computes the time based on the SubBand's duty cycle and on the transmission duration.
nextTime | The future time from which transmission should be allowed again. |
Definition at line 78 of file sub-band.cc.
References m_nextTransmissionTime.
|
private |
The duty cycle that needs to be enforced on this subband.
Definition at line 129 of file sub-band.h.
Referenced by GetDutyCycle().
|
private |
Starting frequency of the subband, in MHz.
Definition at line 127 of file sub-band.h.
Referenced by BelongsToSubBand(), and GetFirstFrequency().
|
private |
Ending frequency of the subband, in MHz.
Definition at line 128 of file sub-band.h.
Referenced by BelongsToSubBand().
|
private |
The maximum transmission power that is admitted on this subband.
Definition at line 131 of file sub-band.h.
Referenced by GetMaxTxPowerDbm(), and SetMaxTxPowerDbm().
|
private |
The next time a transmission will be allowed in this subband.
Definition at line 130 of file sub-band.h.
Referenced by GetNextTransmissionTime(), and SetNextTransmissionTime().