A Discrete-Event Network Simulator
API
three-gpp-antenna-model.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2020 University of Padova, Dep. of Information Engineering, SIGNET lab.
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 
19 #ifndef THREE_GPP_ANTENNA_MODEL_H
20 #define THREE_GPP_ANTENNA_MODEL_H
21 
22 
23 #include <ns3/object.h>
24 #include <ns3/antenna-model.h>
25 
26 namespace ns3 {
27 
36 {
37 public:
38  ThreeGppAntennaModel (void);
39  virtual ~ThreeGppAntennaModel (void) override;
40 
41  // inherited from Object
42  static TypeId GetTypeId ();
43 
44  // inherited from AntennaModel
45  virtual double GetGainDb (Angles a) override;
46 
51  double GetVerticalBeamwidth () const;
52 
57  double GetHorizontalBeamwidth () const;
58 
63  double GetSlaV () const;
64 
69  double GetMaxAttenuation () const;
70 
75  double GetAntennaElementGain () const;
76 
77 private:
80  double m_aMax;
81  double m_slaV;
82  double m_geMax;
83 };
84 
85 
86 
87 } // namespace ns3
88 
89 
90 #endif // THREE_GPP_ANTENNA_MODEL_H
double GetAntennaElementGain() const
Get the maximum directional gain of the antenna element.
Class holding the azimuth and inclination angles of spherical coordinates.
Definition: angles.h:118
double GetSlaV() const
Get the side-lobe attenuation in the vertical direction of the antenna element.
double m_aMax
maximum attenuation (A_{max}) [dB]
virtual double GetGainDb(Angles a) override
this method is expected to be re-implemented by each antenna model
double GetVerticalBeamwidth() const
Get the vertical beamwidth of the antenna element.
double m_verticalBeamwidthDegrees
beamwidth in the vertical direction ({3dB}) [deg]
Antenna model based on a parabolic approximation of the main lobe radiation pattern.
double GetHorizontalBeamwidth() const
Get the horizontal beamwidth of the antenna element.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
double m_slaV
side-lobe attenuation in the vertical direction (SLA_V) [dB]
virtual ~ThreeGppAntennaModel(void) override
double m_geMax
maximum directional gain of the antenna element (G_{E,max}) [dBi]
double GetMaxAttenuation() const
Get the naximum attenuation of the antenna element.
double m_horizontalBeamwidthDegrees
beamwidth in the horizontal direction ({3dB}) [deg]
interface for antenna radiation pattern models
Definition: antenna-model.h:44
a unique identifier for an interface.
Definition: type-id.h:58