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
lora-radio-energy-model-helper.cc
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
#include "
lora-radio-energy-model-helper.h
"
10
11
#include "ns3/lora-net-device.h"
12
#include "ns3/lora-radio-energy-model.h"
13
#include "ns3/lora-tx-current-model.h"
14
15
namespace
ns3
16
{
17
namespace
lorawan
18
{
19
20
LoraRadioEnergyModelHelper::LoraRadioEnergyModelHelper
()
21
{
22
m_radioEnergy
.SetTypeId(
"ns3::LoraRadioEnergyModel"
);
23
}
24
25
LoraRadioEnergyModelHelper::~LoraRadioEnergyModelHelper
()
26
{
27
}
28
29
void
30
LoraRadioEnergyModelHelper::Set
(std::string name,
const
AttributeValue
&
v
)
31
{
32
m_radioEnergy
.Set(name,
v
);
33
}
34
35
/*
36
* Private function starts here.
37
*/
38
39
Ptr<energy::DeviceEnergyModel>
40
LoraRadioEnergyModelHelper::DoInstall
(
Ptr<NetDevice>
device,
Ptr<energy::EnergySource>
source)
const
41
{
42
NS_ASSERT
(device);
43
NS_ASSERT
(source);
44
// check if device is LoraNetDevice
45
std::string deviceName = device->GetInstanceTypeId().GetName();
46
if
(deviceName !=
"ns3::LoraNetDevice"
)
47
{
48
NS_FATAL_ERROR
(
"NetDevice type is not LoraNetDevice!"
);
49
}
50
Ptr<Node>
node = device->GetNode();
51
Ptr<LoraRadioEnergyModel>
model =
m_radioEnergy
.Create<
LoraRadioEnergyModel
>();
52
NS_ASSERT
(model);
53
54
Ptr<LoraNetDevice>
loraDevice =
DynamicCast<LoraNetDevice>
(device);
55
Ptr<EndDeviceLoraPhy>
loraPhy =
DynamicCast<EndDeviceLoraPhy>
(loraDevice->GetPhy());
56
// add model to device model list in energy source
57
source->AppendDeviceEnergyModel(model);
58
// set energy source pointer
59
model->SetEnergySource(source);
60
// create and register energy model PHY listener
61
loraPhy->RegisterListener(model->GetPhyListener());
62
//
63
if
(
m_txCurrentModel
.GetTypeId().GetUid())
64
{
65
Ptr<LoraTxCurrentModel>
txcurrent =
m_txCurrentModel
.Create<
LoraTxCurrentModel
>();
66
model->SetTxCurrentModel(txcurrent);
67
}
68
return
model;
69
}
70
71
}
// namespace lorawan
72
}
// namespace ns3
v
uint32_t v
Definition
cairo-wideint.c:749
ns3::AttributeValue
Hold a value for an Attribute.
Definition
attribute.h:59
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition
ptr.h:70
ns3::lorawan::LoraRadioEnergyModelHelper::m_radioEnergy
ObjectFactory m_radioEnergy
radio energy
Definition
lora-radio-energy-model-helper.h:62
ns3::lorawan::LoraRadioEnergyModelHelper::Set
void Set(std::string name, const AttributeValue &v) override
Definition
lora-radio-energy-model-helper.cc:30
ns3::lorawan::LoraRadioEnergyModelHelper::m_txCurrentModel
ObjectFactory m_txCurrentModel
transmit current model
Definition
lora-radio-energy-model-helper.h:63
ns3::lorawan::LoraRadioEnergyModelHelper::~LoraRadioEnergyModelHelper
~LoraRadioEnergyModelHelper() override
Destructor.
Definition
lora-radio-energy-model-helper.cc:25
ns3::lorawan::LoraRadioEnergyModelHelper::DoInstall
Ptr< energy::DeviceEnergyModel > DoInstall(Ptr< NetDevice > device, Ptr< energy::EnergySource > source) const override
Definition
lora-radio-energy-model-helper.cc:40
ns3::lorawan::LoraRadioEnergyModelHelper::LoraRadioEnergyModelHelper
LoraRadioEnergyModelHelper()
Default constructor.
Definition
lora-radio-energy-model-helper.cc:20
ns3::lorawan::LoraRadioEnergyModel
A LoRa radio energy model.
Definition
lora-radio-energy-model.h:113
ns3::lorawan::LoraTxCurrentModel
Model the transmit current as a function of the transmit power and mode.
Definition
lora-tx-current-model.h:26
NS_ASSERT
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file,...
Definition
assert.h:55
NS_FATAL_ERROR
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
Definition
fatal-error.h:186
lora-radio-energy-model-helper.h
ns3::lorawan
Definition
forwarder-helper.cc:19
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::DynamicCast
Ptr< T1 > DynamicCast(const Ptr< T2 > &p)
Cast a Ptr.
Definition
ptr.h:643
src
lorawan
helper
lora-radio-energy-model-helper.cc
Generated on
for ns-3 by
1.16.1