A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
three-gpp-v2v-channel-condition-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 SIGNET Lab, Department of Information Engineering,
4
* University of Padova
5
* Copyright (c) 2020 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License version 2 as
9
* published by the Free Software Foundation;
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*/
20
21
#ifndef THREE_GPP_V2V_CHANNEL_CONDITION_MODEL
22
#define THREE_GPP_V2V_CHANNEL_CONDITION_MODEL
23
24
#include "ns3/channel-condition-model.h"
25
#include "
buildings-channel-condition-model.h
"
26
#include <functional>
27
28
namespace
ns3
{
29
30
class
MobilityModel;
31
49
class
ThreeGppV2vUrbanChannelConditionModel
:
public
ThreeGppChannelConditionModel
50
{
51
public
:
57
static
TypeId
GetTypeId
(
void
);
58
62
ThreeGppV2vUrbanChannelConditionModel
();
63
67
virtual
~ThreeGppV2vUrbanChannelConditionModel
()
override
;
68
69
private
:
78
virtual
double
ComputePlos
(
Ptr<const MobilityModel>
a,
Ptr<const MobilityModel>
b)
const override
;
79
89
virtual
double
ComputePnlos
(
Ptr<const MobilityModel>
a,
Ptr<const MobilityModel>
b)
const override
;
90
91
Ptr<BuildingsChannelConditionModel>
m_buildingsCcm
;
92
};
93
111
class
ThreeGppV2vHighwayChannelConditionModel
:
public
ThreeGppChannelConditionModel
112
{
113
public
:
119
static
TypeId
GetTypeId
(
void
);
120
124
ThreeGppV2vHighwayChannelConditionModel
();
125
129
virtual
~ThreeGppV2vHighwayChannelConditionModel
()
override
;
130
131
private
:
140
virtual
double
ComputePlos
(
Ptr<const MobilityModel>
a,
Ptr<const MobilityModel>
b)
const override
;
141
151
virtual
double
ComputePnlos
(
Ptr<const MobilityModel>
a,
Ptr<const MobilityModel>
b)
const override
;
152
166
std::function <Ptr<ChannelCondition> (
Ptr<const MobilityModel>
,
Ptr<const MobilityModel>
) >
ComputeChCond
;
167
178
Ptr<ChannelCondition>
GetChCondAndFixCallback
(
Ptr<const MobilityModel>
a,
Ptr<const MobilityModel>
b);
179
190
Ptr<ChannelCondition>
GetChCondWithBuildings
(
Ptr<const MobilityModel>
a,
Ptr<const MobilityModel>
b)
const
;
191
201
Ptr<ChannelCondition>
GetChCondWithNoBuildings
(
Ptr<const MobilityModel>
a,
Ptr<const MobilityModel>
b)
const
;
202
203
Ptr<BuildingsChannelConditionModel>
m_buildingsCcm
;
204
};
205
206
}
// end ns3 namespace
207
208
#endif
/* THREE_GPP_V2V_CHANNEL_CONDITION_MODEL */
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:59
ns3::ThreeGppV2vUrbanChannelConditionModel::ThreeGppV2vUrbanChannelConditionModel
ThreeGppV2vUrbanChannelConditionModel()
Constructor for the ThreeGppV2vUrbanChannelConditionModel class.
Definition:
three-gpp-v2v-channel-condition-model.cc:43
ns3::ThreeGppV2vHighwayChannelConditionModel::~ThreeGppV2vHighwayChannelConditionModel
virtual ~ThreeGppV2vHighwayChannelConditionModel() override
Destructor for the ThreeGppV2vHighwayChannelConditionModel class.
Definition:
three-gpp-v2v-channel-condition-model.cc:117
ns3::ThreeGppV2vUrbanChannelConditionModel::ComputePlos
virtual double ComputePlos(Ptr< const MobilityModel > a, Ptr< const MobilityModel > b) const override
Compute the LOS probability as specified in Table Table 6.2-1 of 3GPP TR 37.885 for the V2V Urban sce...
Definition:
three-gpp-v2v-channel-condition-model.cc:53
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::ThreeGppV2vHighwayChannelConditionModel::m_buildingsCcm
Ptr< BuildingsChannelConditionModel > m_buildingsCcm
used to determine the obstructions due to buildings
Definition:
three-gpp-v2v-channel-condition-model.h:203
ns3::ThreeGppV2vHighwayChannelConditionModel::ComputePnlos
virtual double ComputePnlos(Ptr< const MobilityModel > a, Ptr< const MobilityModel > b) const override
Compute the NLOS probability.
Definition:
three-gpp-v2v-channel-condition-model.cc:151
ns3::ThreeGppV2vHighwayChannelConditionModel::GetChCondWithBuildings
Ptr< ChannelCondition > GetChCondWithBuildings(Ptr< const MobilityModel > a, Ptr< const MobilityModel > b) const
Get the channel condition between a and b using BuildingsChannelConditionModel.
Definition:
three-gpp-v2v-channel-condition-model.cc:190
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:74
ns3::ThreeGppV2vUrbanChannelConditionModel
Computes the channel condition for the V2V Urban scenario.
Definition:
three-gpp-v2v-channel-condition-model.h:50
ns3::ThreeGppV2vUrbanChannelConditionModel::~ThreeGppV2vUrbanChannelConditionModel
virtual ~ThreeGppV2vUrbanChannelConditionModel() override
Destructor for the ThreeGppV2vUrbanChannelConditionModel class.
Definition:
three-gpp-v2v-channel-condition-model.cc:49
ns3::ThreeGppV2vHighwayChannelConditionModel::ComputeChCond
std::function< Ptr< ChannelCondition >Ptr< const MobilityModel >, Ptr< const MobilityModel >) > ComputeChCond
The callback which is hooked to a method to compute channel condition.
Definition:
three-gpp-v2v-channel-condition-model.h:166
buildings-channel-condition-model.h
ns3::ThreeGppV2vHighwayChannelConditionModel::ComputePlos
virtual double ComputePlos(Ptr< const MobilityModel > a, Ptr< const MobilityModel > b) const override
Compute the LOS probability as specified in Table Table 6.2-1 of 3GPP TR 37.885 for the V2V Highway s...
Definition:
three-gpp-v2v-channel-condition-model.cc:121
ns3::ThreeGppV2vHighwayChannelConditionModel
Computes the channel condition for the V2V Highway scenario.
Definition:
three-gpp-v2v-channel-condition-model.h:112
ns3::ThreeGppV2vHighwayChannelConditionModel::GetChCondAndFixCallback
Ptr< ChannelCondition > GetChCondAndFixCallback(Ptr< const MobilityModel > a, Ptr< const MobilityModel > b)
Get the channel condition and redirect the callback ComputeChCond to GetChaCondWithBuildings or to Ge...
Definition:
three-gpp-v2v-channel-condition-model.cc:170
ns3::ThreeGppV2vUrbanChannelConditionModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition:
three-gpp-v2v-channel-condition-model.cc:33
ns3::ThreeGppV2vHighwayChannelConditionModel::GetChCondWithNoBuildings
Ptr< ChannelCondition > GetChCondWithNoBuildings(Ptr< const MobilityModel > a, Ptr< const MobilityModel > b) const
Get the channel condition between a and b.
Definition:
three-gpp-v2v-channel-condition-model.cc:198
ns3::ThreeGppV2vHighwayChannelConditionModel::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition:
three-gpp-v2v-channel-condition-model.cc:99
ns3::ThreeGppV2vUrbanChannelConditionModel::ComputePnlos
virtual double ComputePnlos(Ptr< const MobilityModel > a, Ptr< const MobilityModel > b) const override
Compute the NLOS probability.
Definition:
three-gpp-v2v-channel-condition-model.cc:76
ns3::ThreeGppV2vHighwayChannelConditionModel::ThreeGppV2vHighwayChannelConditionModel
ThreeGppV2vHighwayChannelConditionModel()
Constructor for the ThreeGppV2vHighwayChannelConditionModel class.
Definition:
three-gpp-v2v-channel-condition-model.cc:109
ns3::ThreeGppChannelConditionModel
Base class for the 3GPP channel condition models.
Definition:
channel-condition-model.h:447
ns3::ThreeGppV2vUrbanChannelConditionModel::m_buildingsCcm
Ptr< BuildingsChannelConditionModel > m_buildingsCcm
used to determine the obstructions due to buildings
Definition:
three-gpp-v2v-channel-condition-model.h:91
src
buildings
model
three-gpp-v2v-channel-condition-model.h
Generated on Fri Oct 1 2021 17:02:56 for ns-3 by
1.8.20