A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
lte-ue-power-control.h
Go to the documentation of this file.
1
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2014 Piotr Gawlowicz
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: Piotr Gawlowicz <gawlowicz.p@gmail.com>
19
*
20
*/
21
22
#ifndef LTE_UE_POWER_CONTROL_H
23
#define LTE_UE_POWER_CONTROL_H
24
25
#include <ns3/ptr.h>
26
#include <ns3/traced-callback.h>
27
#include <ns3/object.h>
28
#include <vector>
29
30
31
namespace
ns3
{
32
54
class
LteUePowerControl
:
public
Object
55
{
56
public
:
57
58
LteUePowerControl
();
59
virtual
~LteUePowerControl
();
60
61
// inherited from Object
62
static
TypeId
GetTypeId
(
void
);
63
virtual
void
DoInitialize
(
void
);
64
virtual
void
DoDispose
(
void
);
65
66
void
SetPcmax
(
double
value);
67
double
GetPcmax
();
68
69
void
SetTxPower
(
double
value);
70
void
ConfigureReferenceSignalPower
(int8_t referenceSignalPower);
71
72
void
SetCellId
(uint16_t cellId);
73
void
SetRnti
(uint16_t rnti);
74
75
void
SetPoNominalPusch
(int16_t value);
76
void
SetPoUePusch
(int16_t value);
77
void
SetAlpha
(
double
value);
78
79
void
SetRsrp
(
double
value);
80
void
ReportTpc
(uint8_t tpc);
81
82
void
CalculatePuschTxPower
();
83
void
CalculatePucchTxPower
();
84
void
CalculateSrsTxPower
();
85
86
double
GetPuschTxPower
(std::vector <int> rb);
87
double
GetPucchTxPower
(std::vector <int> rb);
88
double
GetSrsTxPower
(std::vector <int> rb);
89
97
typedef
void (*
TxPowerTracedCallback
)
98
(
const
uint16_t cellId,
const
uint16_t rnti,
const
double
power);
99
100
private
:
101
void
SetSubChannelMask
(std::vector <int> mask);
102
103
double
m_txPower
;
104
double
m_Pcmax
;
105
double
m_Pcmin
;
106
107
double
m_curPuschTxPower
;
108
double
m_curPucchTxPower
;
109
double
m_curSrsTxPower
;
110
111
double
m_referenceSignalPower
;
112
bool
m_rsrpSet
;
113
double
m_rsrp
;
114
115
std::vector<int16_t>
m_PoNominalPusch
;
116
std::vector<int16_t>
m_PoUePusch
;
117
118
int16_t
m_PsrsOffset
;
119
120
uint16_t
m_M_Pusch
;
121
std::vector<double>
m_alpha
;
122
double
m_pathLoss
;
123
double
m_deltaTF
;
124
125
std::vector<int8_t>
m_deltaPusch
;
126
double
m_fc
;
127
128
uint16_t
m_srsBandwidth
;
129
130
bool
m_closedLoop
;
131
bool
m_accumulationEnabled
;
132
133
uint16_t
m_cellId
;
134
uint16_t
m_rnti
;
139
TracedCallback<uint16_t, uint16_t, double>
m_reportPuschTxPower
;
140
TracedCallback<uint16_t, uint16_t, double>
m_reportPucchTxPower
;
141
TracedCallback<uint16_t, uint16_t, double>
m_reportSrsTxPower
;
142
143
};
144
145
146
}
147
148
#endif
/* LTE_UE_POWER_CONTROL_H */
ns3::LteUePowerControl::m_pathLoss
double m_pathLoss
Definition:
lte-ue-power-control.h:122
ns3::LteUePowerControl::SetTxPower
void SetTxPower(double value)
Definition:
lte-ue-power-control.cc:149
ns3::LteUePowerControl::SetSubChannelMask
void SetSubChannelMask(std::vector< int > mask)
Definition:
lte-ue-power-control.cc:354
ns3::LteUePowerControl::m_PoNominalPusch
std::vector< int16_t > m_PoNominalPusch
Definition:
lte-ue-power-control.h:115
ns3::LteUePowerControl::~LteUePowerControl
virtual ~LteUePowerControl()
Definition:
lte-ue-power-control.cc:53
ns3::LteUePowerControl::SetCellId
void SetCellId(uint16_t cellId)
Definition:
lte-ue-power-control.cc:166
ns3::LteUePowerControl::SetAlpha
void SetAlpha(double value)
Definition:
lte-ue-power-control.cc:215
ns3::LteUePowerControl::CalculateSrsTxPower
void CalculateSrsTxPower()
Definition:
lte-ue-power-control.cc:397
ns3::LteUePowerControl::m_referenceSignalPower
double m_referenceSignalPower
Definition:
lte-ue-power-control.h:111
ns3::LteUePowerControl::GetPuschTxPower
double GetPuschTxPower(std::vector< int > rb)
Definition:
lte-ue-power-control.cc:421
ns3::LteUePowerControl::m_M_Pusch
uint16_t m_M_Pusch
Definition:
lte-ue-power-control.h:120
ns3::LteUePowerControl::SetPoUePusch
void SetPoUePusch(int16_t value)
Definition:
lte-ue-power-control.cc:198
ns3::TracedCallback< uint16_t, uint16_t, double >
ns3::LteUePowerControl::m_deltaPusch
std::vector< int8_t > m_deltaPusch
Definition:
lte-ue-power-control.h:125
ns3::LteUePowerControl::m_closedLoop
bool m_closedLoop
Definition:
lte-ue-power-control.h:130
ns3::LteUePowerControl::m_srsBandwidth
uint16_t m_srsBandwidth
Definition:
lte-ue-power-control.h:128
ns3::LteUePowerControl::m_curPucchTxPower
double m_curPucchTxPower
Definition:
lte-ue-power-control.h:108
ns3::LteUePowerControl::m_reportPucchTxPower
TracedCallback< uint16_t, uint16_t, double > m_reportPucchTxPower
Definition:
lte-ue-power-control.h:140
ns3::LteUePowerControl::SetPcmax
void SetPcmax(double value)
Definition:
lte-ue-power-control.cc:135
ns3::LteUePowerControl::m_Pcmax
double m_Pcmax
Definition:
lte-ue-power-control.h:104
ns3::LteUePowerControl::m_fc
double m_fc
Definition:
lte-ue-power-control.h:126
ns3::LteUePowerControl::m_reportSrsTxPower
TracedCallback< uint16_t, uint16_t, double > m_reportSrsTxPower
Definition:
lte-ue-power-control.h:141
ns3::LteUePowerControl::DoInitialize
virtual void DoInitialize(void)
Initialize() implementation.
Definition:
lte-ue-power-control.cc:59
ns3::LteUePowerControl::LteUePowerControl
LteUePowerControl()
Definition:
lte-ue-power-control.cc:35
ns3::LteUePowerControl::m_reportPuschTxPower
TracedCallback< uint16_t, uint16_t, double > m_reportPuschTxPower
Trace information regarding Uplink TxPower uint16_t cellId, uint16_t rnti, double txPower...
Definition:
lte-ue-power-control.h:139
ns3::LteUePowerControl::m_rsrp
double m_rsrp
Definition:
lte-ue-power-control.h:113
ns3::LteUePowerControl::m_curPuschTxPower
double m_curPuschTxPower
Definition:
lte-ue-power-control.h:107
ns3::LteUePowerControl::GetTypeId
static TypeId GetTypeId(void)
Definition:
lte-ue-power-control.cc:71
ns3::LteUePowerControl::m_deltaTF
double m_deltaTF
Definition:
lte-ue-power-control.h:123
ns3::LteUePowerControl::m_PoUePusch
std::vector< int16_t > m_PoUePusch
Definition:
lte-ue-power-control.h:116
ns3::LteUePowerControl::CalculatePucchTxPower
void CalculatePucchTxPower()
Definition:
lte-ue-power-control.cc:389
ns3::LteUePowerControl::m_Pcmin
double m_Pcmin
Definition:
lte-ue-power-control.h:105
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteUePowerControl::m_PsrsOffset
int16_t m_PsrsOffset
Definition:
lte-ue-power-control.h:118
ns3::LteUePowerControl::SetPoNominalPusch
void SetPoNominalPusch(int16_t value)
Definition:
lte-ue-power-control.cc:179
ns3::LteUePowerControl::m_alpha
std::vector< double > m_alpha
Definition:
lte-ue-power-control.h:121
ns3::LteUePowerControl::CalculatePuschTxPower
void CalculatePuschTxPower()
Definition:
lte-ue-power-control.cc:361
ns3::LteUePowerControl::GetPcmax
double GetPcmax()
Definition:
lte-ue-power-control.cc:142
ns3::LteUePowerControl::m_curSrsTxPower
double m_curSrsTxPower
Definition:
lte-ue-power-control.h:109
ns3::LteUePowerControl
This class realizes Uplink Power Control functionality.
Definition:
lte-ue-power-control.h:54
ns3::LteUePowerControl::SetRnti
void SetRnti(uint16_t rnti)
Definition:
lte-ue-power-control.cc:172
ns3::LteUePowerControl::m_rsrpSet
bool m_rsrpSet
Definition:
lte-ue-power-control.h:112
ns3::LteUePowerControl::m_cellId
uint16_t m_cellId
Definition:
lte-ue-power-control.h:133
ns3::LteUePowerControl::GetPucchTxPower
double GetPucchTxPower(std::vector< int > rb)
Definition:
lte-ue-power-control.cc:434
ns3::LteUePowerControl::m_rnti
uint16_t m_rnti
Definition:
lte-ue-power-control.h:134
ns3::LteUePowerControl::GetSrsTxPower
double GetSrsTxPower(std::vector< int > rb)
Definition:
lte-ue-power-control.cc:446
ns3::LteUePowerControl::m_txPower
double m_txPower
Definition:
lte-ue-power-control.h:103
ns3::LteUePowerControl::SetRsrp
void SetRsrp(double value)
Definition:
lte-ue-power-control.cc:251
ns3::Object
A base class which provides memory management and object aggregation.
Definition:
object.h:87
ns3::LteUePowerControl::ConfigureReferenceSignalPower
void ConfigureReferenceSignalPower(int8_t referenceSignalPower)
Definition:
lte-ue-power-control.cc:159
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:51
ns3::LteUePowerControl::m_accumulationEnabled
bool m_accumulationEnabled
Definition:
lte-ue-power-control.h:131
ns3::LteUePowerControl::TxPowerTracedCallback
void(* TxPowerTracedCallback)(const uint16_t cellId, const uint16_t rnti, const double power)
TracedCallback signature for uplink transmit power.
Definition:
lte-ue-power-control.h:98
ns3::LteUePowerControl::ReportTpc
void ReportTpc(uint8_t tpc)
Definition:
lte-ue-power-control.cc:268
ns3::LteUePowerControl::DoDispose
virtual void DoDispose(void)
Destructor implementation.
Definition:
lte-ue-power-control.cc:65
src
lte
model
lte-ue-power-control.h
Generated on Thu Feb 5 2015 18:33:45 for ns-3 by
1.8.9.1