A Discrete-Event Network Simulator
API
radio-environment-map-helper.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
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: Nicola Baldo <nbaldo@cttc.es>
19  */
20 
21 
22 #ifndef RADIO_ENVIRONMENT_MAP_HELPER_H
23 #define RADIO_ENVIRONMENT_MAP_HELPER_H
24 
25 
26 #include <ns3/object.h>
27 #include <fstream>
28 
29 
30 namespace ns3 {
31 
32 class RemSpectrumPhy;
33 class Node;
34 class NetDevice;
35 class SpectrumChannel;
36 //class BuildingsMobilityModel;
37 class MobilityModel;
38 
47 {
48 public:
49 
51  virtual ~RadioEnvironmentMapHelper ();
52 
53  // inherited from Object
54  virtual void DoDispose (void);
59  static TypeId GetTypeId (void);
60 
64  uint8_t GetBandwidth () const;
65 
70  void SetBandwidth (uint8_t bw);
71 
76  void Install ();
77 
78 private:
79 
92  void DelayedInstall ();
93 
103  void RunOneIteration (double xMin, double xMax, double yMin, double yMax);
104 
106  void PrintAndReset ();
107 
109  void Finalize ();
110 
112  struct RemPoint
113  {
118  };
119 
121  std::list<RemPoint> m_rem;
122 
123  double m_xMin;
124  double m_xMax;
125  uint16_t m_xRes;
126  double m_xStep;
127 
128  double m_yMin;
129  double m_yMax;
130  uint16_t m_yRes;
131  double m_yStep;
132 
134 
135  uint16_t m_earfcn;
136  uint16_t m_bandwidth;
137 
138  double m_z;
139 
140  std::string m_channelPath;
141  std::string m_outputFile;
142 
144 
147 
148  double m_noisePower;
149 
150  std::ofstream m_outFile;
151 
153  int32_t m_rbId;
154 
155 }; // end of `class RadioEnvironmentMapHelper`
156 
157 
158 } // end of `namespace ns3`
159 
160 #endif /* RADIO_ENVIRONMENT_MAP_HELPER_H */
Generates a 2D map of the SINR from the strongest transmitter in the downlink of an LTE FDD system...
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
void PrintAndReset()
Go through every listener, write the computed SINR, and then reset it.
void DelayedInstall()
Scheduled by Install() to perform the actual generation of map.
std::ofstream m_outFile
Stream the output to a file.
Ptr< MobilityModel > bmm
Position of the listener in the environment.
uint32_t m_maxPointsPerIteration
The MaxPointsPerIteration attribute.
static TypeId GetTypeId(void)
Register this type.
void Finalize()
Called when the map generation procedure has been completed.
bool m_stopWhenDone
The StopWhenDone attribute.
Ptr< RemSpectrumPhy > phy
Simplified listener which compute SINR over the DL channel.
uint16_t m_bandwidth
The Bandwidth attribute.
void RunOneIteration(double xMin, double xMax, double yMin, double yMax)
Mobilize all the listeners to a specified area.
std::list< RemPoint > m_rem
List of listeners in the environment.
bool m_useDataChannel
The UseDataChannel attribute.
double m_yStep
Distance along Y axis between adjacent listening points.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void Install()
Deploy the RemSpectrumPhy objects that generate the map according to the specified settings...
std::string m_channelPath
The ChannelPath attribute.
A complete Radio Environment Map is composed of many of this structure.
uint16_t m_earfcn
The Earfcn attribute.
Ptr< SpectrumChannel > m_channel
The channel object taken from the ChannelPath attribute.
A base class which provides memory management and object aggregation.
Definition: object.h:87
std::string m_outputFile
The OutputFile attribute.
double m_xStep
Distance along X axis between adjacent listening points.
virtual void DoDispose(void)
Destructor implementation.
a unique identifier for an interface.
Definition: type-id.h:58
double m_noisePower
The NoisePower attribute.