A Discrete-Event Network Simulator
API
basic-energy-source.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2010 Network Security Lab, University of Washington, Seattle.
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  * Authors: Sidharth Nabar <snabar@uw.edu>, He Wu <mdzz@u.washington.edu>
19  */
20 
21 #ifndef BASIC_ENERGY_SOURCE_H
22 #define BASIC_ENERGY_SOURCE_H
23 
24 #include "ns3/traced-value.h"
25 #include "ns3/nstime.h"
26 #include "ns3/event-id.h"
27 #include "energy-source.h"
28 
29 namespace ns3 {
30 
38 {
39 public:
44  static TypeId GetTypeId (void);
46  virtual ~BasicEnergySource ();
47 
53  virtual double GetInitialEnergy (void) const;
54 
60  virtual double GetSupplyVoltage (void) const;
61 
67  virtual double GetRemainingEnergy (void);
68 
74  virtual double GetEnergyFraction (void);
75 
79  virtual void UpdateEnergySource (void);
80 
88  void SetInitialEnergy (double initialEnergyJ);
89 
95  void SetSupplyVoltage (double supplyVoltageV);
96 
102  void SetEnergyUpdateInterval (Time interval);
103 
107  Time GetEnergyUpdateInterval (void) const;
108 
109 
110 private:
112  void DoInitialize (void);
113 
115  void DoDispose (void);
116 
122  void HandleEnergyDrainedEvent (void);
123 
130  void HandleEnergyRechargedEvent (void);
131 
140  void CalculateRemainingEnergy (void);
141 
142 private:
145  double m_lowBatteryTh;
156 
157 };
158 
159 } // namespace ns3
160 
161 #endif /* BASIC_ENERGY_SOURCE_H */
BasicEnergySource decreases/increases remaining energy stored in itself in linearly.
void SetEnergyUpdateInterval(Time interval)
virtual void UpdateEnergySource(void)
Implements UpdateEnergySource.
virtual double GetRemainingEnergy(void)
void HandleEnergyDrainedEvent(void)
Handles the remaining energy going to zero event.
Time m_energyUpdateInterval
energy update interval
double m_initialEnergyJ
initial energy, in Joules
double m_lowBatteryTh
low battery threshold, as a fraction of the initial energy
Time m_lastUpdateTime
last update time
void SetSupplyVoltage(double supplyVoltageV)
EventId m_energyUpdateEvent
energy update event
void HandleEnergyRechargedEvent(void)
Handles the remaining energy exceeding the high threshold after it went below the low threshold.
static TypeId GetTypeId(void)
Get the type ID.
virtual double GetEnergyFraction(void)
virtual double GetInitialEnergy(void) const
Time GetEnergyUpdateInterval(void) const
TracedValue< double > m_remainingEnergyJ
remaining energy, in Joules
bool m_depleted
set to true when the remaining energy goes below the low threshold, set to false again when the remai...
double m_highBatteryTh
high battery threshold, as a fraction of the initial energy
void CalculateRemainingEnergy(void)
Calculates remaining energy.
virtual double GetSupplyVoltage(void) const
void DoDispose(void)
Defined in ns3::Object.
void SetInitialEnergy(double initialEnergyJ)
double m_supplyVoltageV
supply voltage, in Volts
void DoInitialize(void)
Defined in ns3::Object.
Introspection did not find any typical Config paths.
Definition: energy-source.h:87
An identifier for simulation events.
Definition: event-id.h:54
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.