A Discrete-Event Network Simulator
API
cost231-propagation-loss-model.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2007,2008, 2009 INRIA, UDcast
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: Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
19  * <amine.ismail@udcast.com>
20  */
21 
22 #ifndef COST231_PROPAGATION_LOSS_MODEL_H
23 #define COST231_PROPAGATION_LOSS_MODEL_H
24 
25 #include "ns3/nstime.h"
26 #include "ns3/propagation-loss-model.h"
27 
28 namespace ns3 {
29 
51 {
52 
53 public:
58  static TypeId GetTypeId (void);
60 
67  double GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
68 
73  void SetBSAntennaHeight (double height);
78  void SetSSAntennaHeight (double height);
79 
84  void SetLambda (double lambda);
90  void SetLambda (double frequency, double speed);
95  void SetMinDistance (double minDistance);
100  double GetBSAntennaHeight (void) const;
105  double GetSSAntennaHeight (void) const;
110  double GetMinDistance (void) const;
115  double GetLambda (void) const;
120  double GetShadowing (void);
125  void SetShadowing (double shadowing);
126 private:
140 
141  virtual double DoCalcRxPower (double txPowerDbm, Ptr<MobilityModel> a, Ptr<MobilityModel> b) const;
142  virtual int64_t DoAssignStreams (int64_t stream);
145  double m_lambda;
146  double m_minDistance;
147  double m_frequency;
148  double m_shadowing;
149 
150 };
151 
152 }
153 
154 #endif /* COST231PROPAGATIONMODEL_H */
double GetMinDistance(void) const
Get the minimum model distance.
virtual double DoCalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Returns the Rx Power taking into account only the particular PropagationLossModel.
void SetShadowing(double shadowing)
Set the shadowing value.
The COST-Hata-Model is the most often cited of the COST 231 models.
static TypeId GetTypeId(void)
Get the type ID.
Cost231PropagationLossModel & operator=(const Cost231PropagationLossModel &)
Copy constructor.
double m_SSAntennaHeight
SS Antenna Height [m].
virtual int64_t DoAssignStreams(int64_t stream)
Subclasses must implement this; those not using random variables can return zero. ...
double GetShadowing(void)
Get the shadowing value.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetBSAntennaHeight(double height)
Set the BS antenna height.
double GetLoss(Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
Get the propagation loss.
void SetSSAntennaHeight(double height)
Set the SS antenna height.
double GetBSAntennaHeight(void) const
Get the BS antenna height.
void SetMinDistance(double minDistance)
Set the minimum model distance.
Models the propagation loss through a transmission medium.
void SetLambda(double lambda)
Set the wavelength.
double m_BSAntennaHeight
BS Antenna Height [m].
double GetLambda(void) const
Get the wavelength.
a unique identifier for an interface.
Definition: type-id.h:58
double GetSSAntennaHeight(void) const
Get the SS antenna height.