A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
wifi-radio-energy-model-helper.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2010 Network Security Lab, University of Washington, Seattle.
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Sidharth Nabar <snabar@uw.edu>, He Wu <mdzz@u.washington.edu>
18
*/
19
20
#ifndef WIFI_RADIO_ENERGY_MODEL_HELPER_H
21
#define WIFI_RADIO_ENERGY_MODEL_HELPER_H
22
23
#include "ns3/energy-model-helper.h"
24
#include "ns3/wifi-radio-energy-model.h"
25
26
namespace
ns3
27
{
28
29
/**
30
* \ingroup energy
31
* \brief Assign WifiRadioEnergyModel to wifi devices.
32
*
33
* This installer installs WifiRadioEnergyModel for only WifiNetDevice objects.
34
*
35
*/
36
class
WifiRadioEnergyModelHelper
:
public
DeviceEnergyModelHelper
37
{
38
public
:
39
/**
40
* Construct a helper which is used to add a radio energy model to a node
41
*/
42
WifiRadioEnergyModelHelper
();
43
44
/**
45
* Destroy a RadioEnergy Helper
46
*/
47
~WifiRadioEnergyModelHelper
()
override
;
48
49
/**
50
* \param name the name of the attribute to set
51
* \param v the value of the attribute
52
*
53
* Sets an attribute of the underlying PHY object.
54
*/
55
void
Set
(std::string name,
const
AttributeValue
& v)
override
;
56
57
/**
58
* \param callback Callback function for energy depletion handling.
59
*
60
* Sets the callback to be invoked when energy is depleted.
61
*/
62
void
SetDepletionCallback
(
WifiRadioEnergyModel::WifiRadioEnergyDepletionCallback
callback);
63
64
/**
65
* \param callback Callback function for energy recharged handling.
66
*
67
* Sets the callback to be invoked when energy is recharged.
68
*/
69
void
SetRechargedCallback
(
WifiRadioEnergyModel::WifiRadioEnergyRechargedCallback
callback);
70
71
/**
72
* \tparam Ts \deduced Argument types
73
* \param name the name of the model to set
74
* \param [in] args Name and AttributeValue pairs to set.
75
*
76
* Configure a Transmission Current model for this EnergySource.
77
*/
78
template
<
typename
... Ts>
79
void
SetTxCurrentModel
(std::string name, Ts&&... args);
80
81
private
:
82
/**
83
* \param device Pointer to the NetDevice to install DeviceEnergyModel.
84
* \param source Pointer to EnergySource to install.
85
* \returns Ptr<DeviceEnergyModel>
86
*
87
* Implements DeviceEnergyModel::Install.
88
*/
89
Ptr<energy::DeviceEnergyModel>
DoInstall
(
Ptr<NetDevice>
device,
90
Ptr<energy::EnergySource>
source)
const override
;
91
92
private
:
93
ObjectFactory
m_radioEnergy
;
///< radio energy
94
WifiRadioEnergyModel::WifiRadioEnergyDepletionCallback
95
m_depletionCallback
;
///< radio energy depletion callback
96
WifiRadioEnergyModel::WifiRadioEnergyRechargedCallback
97
m_rechargedCallback
;
///< radio energy recharged callback
98
ObjectFactory
m_txCurrentModel
;
///< transmit current model
99
};
100
101
/***************************************************************
102
* Implementation of the templates declared above.
103
***************************************************************/
104
105
template
<
typename
... Ts>
106
void
107
WifiRadioEnergyModelHelper::SetTxCurrentModel
(std::string name, Ts&&... args)
108
{
109
m_txCurrentModel
=
ObjectFactory
(name, std::forward<Ts>(args)...);
110
}
111
112
}
// namespace ns3
113
114
#endif
/* WIFI_RADIO_ENERGY_MODEL_HELPER_H */
ns3::AttributeValue
Hold a value for an Attribute.
Definition:
attribute.h:70
ns3::Callback< void >
ns3::DeviceEnergyModelHelper
Creates DeviceEnergyModel objects.
Definition:
energy-model-helper.h:115
ns3::ObjectFactory
Instantiate subclasses of ns3::Object.
Definition:
object-factory.h:48
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:77
ns3::WifiRadioEnergyModelHelper
Assign WifiRadioEnergyModel to wifi devices.
Definition:
wifi-radio-energy-model-helper.h:37
ns3::WifiRadioEnergyModelHelper::~WifiRadioEnergyModelHelper
~WifiRadioEnergyModelHelper() override
Destroy a RadioEnergy Helper.
Definition:
wifi-radio-energy-model-helper.cc:36
ns3::WifiRadioEnergyModelHelper::SetRechargedCallback
void SetRechargedCallback(WifiRadioEnergyModel::WifiRadioEnergyRechargedCallback callback)
Definition:
wifi-radio-energy-model-helper.cc:54
ns3::WifiRadioEnergyModelHelper::SetDepletionCallback
void SetDepletionCallback(WifiRadioEnergyModel::WifiRadioEnergyDepletionCallback callback)
Definition:
wifi-radio-energy-model-helper.cc:47
ns3::WifiRadioEnergyModelHelper::DoInstall
Ptr< energy::DeviceEnergyModel > DoInstall(Ptr< NetDevice > device, Ptr< energy::EnergySource > source) const override
Definition:
wifi-radio-energy-model-helper.cc:65
ns3::WifiRadioEnergyModelHelper::m_rechargedCallback
WifiRadioEnergyModel::WifiRadioEnergyRechargedCallback m_rechargedCallback
radio energy recharged callback
Definition:
wifi-radio-energy-model-helper.h:97
ns3::WifiRadioEnergyModelHelper::WifiRadioEnergyModelHelper
WifiRadioEnergyModelHelper()
Construct a helper which is used to add a radio energy model to a node.
Definition:
wifi-radio-energy-model-helper.cc:29
ns3::WifiRadioEnergyModelHelper::m_depletionCallback
WifiRadioEnergyModel::WifiRadioEnergyDepletionCallback m_depletionCallback
radio energy depletion callback
Definition:
wifi-radio-energy-model-helper.h:95
ns3::WifiRadioEnergyModelHelper::Set
void Set(std::string name, const AttributeValue &v) override
Definition:
wifi-radio-energy-model-helper.cc:41
ns3::WifiRadioEnergyModelHelper::m_radioEnergy
ObjectFactory m_radioEnergy
radio energy
Definition:
wifi-radio-energy-model-helper.h:93
ns3::WifiRadioEnergyModelHelper::m_txCurrentModel
ObjectFactory m_txCurrentModel
transmit current model
Definition:
wifi-radio-energy-model-helper.h:98
ns3::WifiRadioEnergyModelHelper::SetTxCurrentModel
void SetTxCurrentModel(std::string name, Ts &&... args)
Definition:
wifi-radio-energy-model-helper.h:107
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
wifi
helper
wifi-radio-energy-model-helper.h
Generated on Tue May 28 2024 23:40:04 for ns-3 by
1.9.6