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

#include <waveform-generator.h>

+ Inheritance diagram for ns3::WaveformGenerator:
+ Collaboration diagram for ns3::WaveformGenerator:

Public Member Functions

 WaveformGenerator ()
virtual ~WaveformGenerator ()
Ptr< NetDeviceGetDevice ()
double GetDutyCycle () const
Ptr< MobilityModelGetMobility ()
Time GetPeriod () const
Ptr< AntennaModelGetRxAntenna ()
Ptr< const SpectrumModelGetRxSpectrumModel () const
void SetAntenna (Ptr< AntennaModel > a)
void SetChannel (Ptr< SpectrumChannel > c)
void SetDevice (Ptr< NetDevice > d)
void SetDutyCycle (double value)
void SetMobility (Ptr< MobilityModel > m)
void SetPeriod (Time period)
void SetTxPowerSpectralDensity (Ptr< SpectrumValue > txs)
virtual void Start ()
void StartRx (Ptr< SpectrumSignalParameters > params)
virtual void Stop ()
- Public Member Functions inherited from ns3::SpectrumPhy
 SpectrumPhy ()
virtual ~SpectrumPhy ()
- 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
- 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::WaveformGenerator.

Private Member Functions

virtual void DoDispose (void)
virtual void GenerateWaveform ()

Private Attributes

bool m_active
Ptr< AntennaModelm_antenna
Ptr< SpectrumChannelm_channel
double m_dutyCycle
Ptr< MobilityModelm_mobility
Ptr< NetDevicem_netDevice
Time m_period
TracedCallback< Ptr< const
Packet > > 
m_phyTxEndTrace
TracedCallback< Ptr< const
Packet > > 
m_phyTxStartTrace
Time m_startTime
Ptr< SpectrumValuem_txPowerSpectralDensity

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void DoDispose (void)
virtual void DoStart (void)
virtual void NotifyNewAggregate (void)

Detailed Description

Simple SpectrumPhy implementation that sends customizable waveform. The generated waveforms have a given Spectrum Power Density and duration (set with the SetResolution()) . The generator activates and deactivates periodically with a given period and with a duty cycle of 1/2.

This PHY model supports a single antenna model instance which is used for both transmission and reception (though received signals are discarded by this PHY).

Definition at line 52 of file waveform-generator.h.

Constructor & Destructor Documentation

ns3::WaveformGenerator::WaveformGenerator ( )

Definition at line 37 of file waveform-generator.cc.

ns3::WaveformGenerator::~WaveformGenerator ( )
virtual

Definition at line 49 of file waveform-generator.cc.

Member Function Documentation

void ns3::WaveformGenerator::DoDispose ( void  )
privatevirtual

Definition at line 56 of file waveform-generator.cc.

References m_channel, m_mobility, m_netDevice, and NS_LOG_FUNCTION.

void ns3::WaveformGenerator::GenerateWaveform ( )
privatevirtual

Definition at line 192 of file waveform-generator.cc.

References m_active, m_antenna, m_channel, m_dutyCycle, m_period, m_phyTxStartTrace, m_txPowerSpectralDensity, NS_LOG_FUNCTION, NS_LOG_LOGIC, ns3::Simulator::Schedule(), and ns3::SpectrumChannel::StartTx().

Referenced by Start().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< NetDevice > ns3::WaveformGenerator::GetDevice ( )
virtual

get the associated NetDevice instance

Returns
a Ptr to the associated NetDevice instance

Implements ns3::SpectrumPhy.

Definition at line 95 of file waveform-generator.cc.

References m_netDevice.

double ns3::WaveformGenerator::GetDutyCycle ( ) const
Returns
the value of the duty cycle

Definition at line 184 of file waveform-generator.cc.

References m_dutyCycle.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Ptr< MobilityModel > ns3::WaveformGenerator::GetMobility ( )
virtual

get the associated MobilityModel instance

Returns
a Ptr to the associated MobilityModel instance

Implements ns3::SpectrumPhy.

Definition at line 102 of file waveform-generator.cc.

References m_mobility.

Time ns3::WaveformGenerator::GetPeriod ( ) const
Returns
the value of the period according to which the WaveformGenerator switches on and off

Definition at line 171 of file waveform-generator.cc.

References m_period.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Ptr< AntennaModel > ns3::WaveformGenerator::GetRxAntenna ( )
virtual

get the AntennaModel used by the NetDevice for reception

Returns
a Ptr to the AntennaModel used by the NetDevice for reception

Implements ns3::SpectrumPhy.

Definition at line 152 of file waveform-generator.cc.

References m_antenna.

Ptr< const SpectrumModel > ns3::WaveformGenerator::GetRxSpectrumModel ( ) const
virtual
Returns
returns the SpectrumModel that this SpectrumPhy expects to be used for all SpectrumValues that are passed to StartRx. If 0 is returned, it means that any model will be accepted.

Implements ns3::SpectrumPhy.

Definition at line 109 of file waveform-generator.cc.

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

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

Attributes defined for this type:

  • Period: the period (=1/frequency)
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +1000000000.0ns
    • Flags: construct write read
  • DutyCycle: the duty cycle of the generator, i.e., the fraction of the period that is occupied by a signal
    • Set with class: ns3::DoubleValue
    • Underlying type: double -1.79769e+308:1.79769e+308
    • Initial value: 0.5
    • Flags: construct write read

TraceSources defined for this type:

  • TxStart: Trace fired when a new transmission is started
  • TxEnd: Trace fired when a previosuly started transmission is finished

Reimplemented from ns3::SpectrumPhy.

Definition at line 65 of file waveform-generator.cc.

References GetDutyCycle(), GetPeriod(), m_phyTxEndTrace, m_phyTxStartTrace, ns3::MakeTraceSourceAccessor(), ns3::Seconds(), SetDutyCycle(), ns3::TypeId::SetParent(), and SetPeriod().

+ Here is the call graph for this function:

void ns3::WaveformGenerator::SetAntenna ( Ptr< AntennaModel a)

set the AntennaModel to be used

Parameters
athe Antenna Model

Definition at line 158 of file waveform-generator.cc.

References m_antenna, and NS_LOG_FUNCTION.

void ns3::WaveformGenerator::SetChannel ( Ptr< SpectrumChannel c)
virtual

Set the channel attached to this device.

Parameters
cthe channel

Implements ns3::SpectrumPhy.

Definition at line 130 of file waveform-generator.cc.

References m_channel, and NS_LOG_FUNCTION_NOARGS.

void ns3::WaveformGenerator::SetDevice ( Ptr< NetDevice d)
virtual

set the associated NetDevice instance

Parameters
dthe NetDevice instance

Implements ns3::SpectrumPhy.

Definition at line 116 of file waveform-generator.cc.

References m_netDevice.

void ns3::WaveformGenerator::SetDutyCycle ( double  value)
Parameters
valuethe value of the duty cycle

Definition at line 179 of file waveform-generator.cc.

References m_dutyCycle.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WaveformGenerator::SetMobility ( Ptr< MobilityModel m)
virtual

Set the mobility model associated with this device.

Parameters
mthe mobility model

Implements ns3::SpectrumPhy.

Definition at line 123 of file waveform-generator.cc.

References m_mobility.

void ns3::WaveformGenerator::SetPeriod ( Time  period)

Set the period according to which the WaveformGenerator switches on and off

Parameters
period

Definition at line 165 of file waveform-generator.cc.

References m_period.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::WaveformGenerator::SetTxPowerSpectralDensity ( Ptr< SpectrumValue txs)

Set the Power Spectral Density used for outgoing waveforms

Parameters
txsthe Power Spectral Density

Definition at line 145 of file waveform-generator.cc.

References m_txPowerSpectralDensity, and NS_LOG_FUNCTION.

void ns3::WaveformGenerator::Start ( void  )
virtual

Start the waveform generator

Reimplemented from ns3::Object.

Definition at line 215 of file waveform-generator.cc.

References GenerateWaveform(), m_active, m_startTime, ns3::Now(), NS_LOG_FUNCTION, NS_LOG_LOGIC, and ns3::Simulator::ScheduleNow().

Referenced by main().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::WaveformGenerator::StartRx ( Ptr< SpectrumSignalParameters params)
virtual

Notify the SpectrumPhy instance of an incoming signal

Parameters
paramsthe parameters of the signals being received

Implements ns3::SpectrumPhy.

Definition at line 139 of file waveform-generator.cc.

References NS_LOG_FUNCTION.

void ns3::WaveformGenerator::Stop ( void  )
virtual

Stop the waveform generator

Definition at line 229 of file waveform-generator.cc.

References m_active, and NS_LOG_FUNCTION.

Member Data Documentation

bool ns3::WaveformGenerator::m_active
private

Definition at line 142 of file waveform-generator.h.

Referenced by GenerateWaveform(), Start(), and Stop().

Ptr<AntennaModel> ns3::WaveformGenerator::m_antenna
private

Definition at line 132 of file waveform-generator.h.

Referenced by GenerateWaveform(), GetRxAntenna(), and SetAntenna().

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

Definition at line 134 of file waveform-generator.h.

Referenced by DoDispose(), GenerateWaveform(), and SetChannel().

double ns3::WaveformGenerator::m_dutyCycle
private

Definition at line 140 of file waveform-generator.h.

Referenced by GenerateWaveform(), GetDutyCycle(), and SetDutyCycle().

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

Definition at line 131 of file waveform-generator.h.

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

Ptr<NetDevice> ns3::WaveformGenerator::m_netDevice
private

Definition at line 133 of file waveform-generator.h.

Referenced by DoDispose(), GetDevice(), and SetDevice().

Time ns3::WaveformGenerator::m_period
private

Definition at line 139 of file waveform-generator.h.

Referenced by GenerateWaveform(), GetPeriod(), and SetPeriod().

TracedCallback<Ptr<const Packet> > ns3::WaveformGenerator::m_phyTxEndTrace
private

Definition at line 145 of file waveform-generator.h.

Referenced by GetTypeId().

TracedCallback<Ptr<const Packet> > ns3::WaveformGenerator::m_phyTxStartTrace
private

Definition at line 144 of file waveform-generator.h.

Referenced by GenerateWaveform(), and GetTypeId().

Time ns3::WaveformGenerator::m_startTime
private

Definition at line 141 of file waveform-generator.h.

Referenced by Start().

Ptr<SpectrumValue> ns3::WaveformGenerator::m_txPowerSpectralDensity
private

Definition at line 138 of file waveform-generator.h.

Referenced by GenerateWaveform(), and SetTxPowerSpectralDensity().


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