A Discrete-Event Network Simulator
API
tv-spectrum-transmitter.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2014 University of Washington
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Benjamin Cizdziel <ben.cizdziel@gmail.com>
19  */
20 
21 #ifndef TV_SPECTRUM_TRANSMITTER_H
22 #define TV_SPECTRUM_TRANSMITTER_H
23 
24 #include <ns3/spectrum-value.h>
25 #include <ns3/spectrum-phy.h>
26 #include <ns3/spectrum-channel.h>
27 #include <ns3/antenna-model.h>
28 #include <ns3/spectrum-signal-parameters.h>
29 #include <ns3/mobility-model.h>
30 #include <ns3/net-device.h>
31 
32 namespace ns3
33 {
34 
35 
47 {
48 
49 public:
53  enum TvType
54  {
58  };
59 
61  virtual ~TvSpectrumTransmitter ();
62 
67  static TypeId GetTypeId (void);
68 
69  // inherited from SpectrumPhy
72  void SetDevice (Ptr<NetDevice> d);
74  Ptr<NetDevice> GetDevice () const;
75  // device does not use Rx but these pure virtual methods must be implemented
77  Ptr<Object> GetAntenna () const;
79 
86 
107  virtual void CreateTvPsd ();
108 
114  Ptr<SpectrumValue> GetTxPsd () const;
115 
119  virtual void Start ();
120 
124  virtual void Stop ();
125 
126 
127 private:
132 
134  virtual void SetupTx ();
135 
136  enum TvType m_tvType;
139  double m_basePsd;
143  bool m_active;
144 
145 };
146 
147 } // namespace ns3
148 
149 #endif /* TV_SPECTRUM_TRANSMITTER_H */
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:74
Abstract base class for Spectrum-aware PHY layers.
Definition: spectrum-phy.h:47
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
SpectrumPhy implementation that creates a customizable TV transmitter which transmits a PSD spectrum ...
Ptr< AntennaModel > m_antenna
Pointer to antenna model object.
Ptr< MobilityModel > GetMobility() const
Get the associated MobilityModel instance.
void SetMobility(Ptr< MobilityModel > m)
Set the mobility model associated with this device.
virtual void CreateTvPsd()
Creates power spectral density (PSD) spectrum of the TV transmitter and sets it for transmission.
double m_basePsd
Base power spectral density value (in dBm/Hz) of TV transmitter's signal.
Time m_transmitDuration
Length of time that TV transmitter will transmit for.
void SetChannel(Ptr< SpectrumChannel > c)
Set the channel attached to this device.
bool m_active
True if TV transmitter is transmitting.
Ptr< NetDevice > m_netDevice
Pointer to net device object.
virtual void Start()
Starts the TV Transmitter's transmission on the spectrum channel.
Ptr< const SpectrumModel > GetRxSpectrumModel() const
double m_channelBandwidth
Bandwidth (in Hz) of TV transmitter's signal.
double m_startFrequency
Start frequency (in Hz) of TV transmitter's signal.
enum TvType m_tvType
Type of TV transmitter.
Time m_startingTime
Timepoint after simulation begins that TV transmitter will begin transmitting.
virtual void Stop()
Stops the TV Transmitter's transmission on the spectrum channel.
virtual void SetupTx()
Sets up signal to be transmitted.
static TypeId GetTypeId(void)
Register this type.
Ptr< SpectrumValue > GetTxPsd() const
Get the power spectral density of the TV transmitter's signal.
void SetDevice(Ptr< NetDevice > d)
Set the associated NetDevice instance.
TvType
types of TV transmitters: analog, digital 8-VSB, or digital COFDM
Ptr< SpectrumChannel > GetChannel() const
Get the spectrum channel.
Ptr< SpectrumChannel > m_channel
Pointer to spectrum channel object.
Ptr< NetDevice > GetDevice() const
Get the associated NetDevice instance.
Ptr< SpectrumValue > m_txPsd
Pointer to power spectral density of TV transmitter's signal.
Ptr< Object > GetAntenna() const
Get the AntennaModel used by this SpectrumPhy instance for transmission and/or reception.
void StartRx(Ptr< SpectrumSignalParameters > params)
Notify the SpectrumPhy instance of an incoming signal.
Ptr< MobilityModel > m_mobility
Pointer to mobility model object.
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.