A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
lora-radio-energy-model-helper.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2017 University of Padova
3 *
4 * SPDX-License-Identifier: GPL-2.0-only
5 *
6 * Author: Romagnolo Stefano <romagnolostefano93@gmail.com>
7 */
8
9#ifndef LORA_RADIO_ENERGY_MODEL_HELPER_H
10#define LORA_RADIO_ENERGY_MODEL_HELPER_H
11
12#include "ns3/energy-model-helper.h"
13#include "ns3/lora-radio-energy-model.h"
14
15namespace ns3
16{
17namespace lorawan
18{
19
20/**
21 * \ingroup lorawan
22 *
23 * Installs LoraRadioEnergyModel on devices.
24 *
25 * This installer installs LoraRadioEnergyModel for only LoraNetDevice objects.
26 */
28{
29 public:
30 LoraRadioEnergyModelHelper(); //!< Default constructor
31 ~LoraRadioEnergyModelHelper() override; //!< Destructor
32
33 /**
34 * \param name The name of the attribute to set.
35 * \param v The value of the attribute.
36 *
37 * Sets an attribute of the underlying PHY object.
38 */
39 void Set(std::string name, const AttributeValue& v) override;
40
41 /**
42 * \param name The name of the model to set.
43 * \param n0 The name of the attribute to set.
44 * \param v0 The value of the attribute to set.
45 * \param n1 The name of the attribute to set.
46 * \param v1 The value of the attribute to set.
47 * \param n2 The name of the attribute to set.
48 * \param v2 The value of the attribute to set.
49 * \param n3 The name of the attribute to set.
50 * \param v3 The value of the attribute to set.
51 * \param n4 The name of the attribute to set.
52 * \param v4 The value of the attribute to set.
53 * \param n5 The name of the attribute to set.
54 * \param v5 The value of the attribute to set.
55 * \param n6 The name of the attribute to set.
56 * \param v6 The value of the attribute to set.
57 * \param n7 The name of the attribute to set.
58 * \param v7 The value of the attribute to set.
59 *
60 * Configure a Transmission Current model for this EnergySource.
61 */
62 void SetTxCurrentModel(std::string name,
63 std::string n0 = "",
65 std::string n1 = "",
67 std::string n2 = "",
69 std::string n3 = "",
71 std::string n4 = "",
73 std::string n5 = "",
75 std::string n6 = "",
77 std::string n7 = "",
79
80 private:
81 /**
82 * \param device Pointer to the NetDevice to install DeviceEnergyModel.
83 * \param source Pointer to EnergySource to install.
84 * \return Ptr<DeviceEnergyModel>.
85 *
86 * Implements DeviceEnergyModel::Install.
87 */
89 Ptr<EnergySource> source) const override;
90
91 private:
92 ObjectFactory m_radioEnergy; ///< radio energy
93 ObjectFactory m_txCurrentModel; ///< transmit current model
94};
95
96} // namespace lorawan
97
98} // namespace ns3
99#endif /* LORA_RADIO_ENERGY_MODEL_HELPER_H */
Hold a value for an Attribute.
Definition attribute.h:59
Creates DeviceEnergyModel objects.
A class for an empty attribute value.
Definition attribute.h:231
Instantiate subclasses of ns3::Object.
Smart pointer class similar to boost::intrusive_ptr.
Installs LoraRadioEnergyModel on devices.
Ptr< DeviceEnergyModel > DoInstall(Ptr< NetDevice > device, Ptr< EnergySource > source) const override
void Set(std::string name, const AttributeValue &v) override
ObjectFactory m_txCurrentModel
transmit current model
void SetTxCurrentModel(std::string name, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
Every class exported by the ns3 library is enclosed in the ns3 namespace.