A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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.
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.