A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
acoustic-modem-energy-model.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2010 Andrea Sacco
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: Andrea Sacco <andrea.sacco85@gmail.com>
19  */
20 
21 #ifndef ACOUSTIC_MODEM_ENERGY_MODEL_H
22 #define ACOUSTIC_MODEM_ENERGY_MODEL_H
23 
24 #include "ns3/device-energy-model.h"
25 #include "ns3/nstime.h"
26 #include "ns3/event-id.h"
27 #include "ns3/traced-value.h"
28 
29 namespace ns3 {
30 
56 {
57 public:
60 
61 public:
66  static TypeId GetTypeId (void);
70  virtual ~AcousticModemEnergyModel ();
71 
77  virtual void SetNode (Ptr<Node> node);
78 
84  virtual Ptr<Node> GetNode (void) const;
85 
86  // Inherited methods.
87  virtual void SetEnergySource (Ptr<EnergySource> source);
88  virtual double GetTotalEnergyConsumption (void) const;
89 
95  double GetTxPowerW (void) const;
96 
102  void SetTxPowerW (double txPowerW);
103 
109  double GetRxPowerW (void) const;
110 
116  void SetRxPowerW (double rxPowerW);
117 
123  double GetIdlePowerW (void) const;
124 
130  void SetIdlePowerW (double idlePowerW);
131 
137  double GetSleepPowerW (void) const;
138 
144  void SetSleepPowerW (double sleepPowerW);
145 
151  int GetCurrentState (void) const;
152 
159 
165  virtual void ChangeState (int newState);
166 
170  virtual void HandleEnergyDepletion (void);
171 
172 
173 private:
174  void DoDispose (void);
175 
179  virtual double DoGetCurrentA (void) const;
180 
187  bool IsStateTransitionValid (const int destState);
188 
195  void SetMicroModemState (const int state);
196 
197 private:
200 
201  // Member variables for power consumption in different modem states.
202  double m_txPowerW;
203  double m_rxPowerW;
204  double m_idlePowerW;
205  double m_sleepPowerW;
206 
209 
210  // State variables.
213 
216 
217 }; // class AcousticModemEnergyModel
218 
219 } // namespace ns3
220 
221 #endif /* ACOUSTIC_MODEM_ENERGY_MODEL_H */
double GetRxPowerW(void) const
Get the recieving power.
virtual void ChangeState(int newState)
Changes state of the AcousticModemEnergyModel.
keep track of time values and allow control of global simulation resolution
Definition: nstime.h:81
virtual ~AcousticModemEnergyModel()
Dummy destructor, see DoDispose.
virtual void HandleEnergyDepletion(void)
Handles energy depletion.
virtual double DoGetCurrentA(void) const
double m_idlePowerW
The idle power, in watts.
Base class for device energy models.
virtual double GetTotalEnergyConsumption(void) const
double m_rxPowerW
The receiver power, in watts.
AcousticModemEnergyDepletionCallback m_energyDepletionCallback
Energy depletion callback.
void SetIdlePowerW(double idlePowerW)
Set the idle state power of the modem.
bool IsStateTransitionValid(const int destState)
Ptr< Node > m_node
The node hosting this transducer.
void SetEnergyDepletionCallback(AcousticModemEnergyDepletionCallback callback)
WHOI micro-modem energy model.
double m_sleepPowerW
The sleep power, in watts.
Callback< void > AcousticModemEnergyDepletionCallback
Callback type for energy depletion handling.
void SetTxPowerW(double txPowerW)
Set the transmission power of the modem.
void SetRxPowerW(double rxPowerW)
Set the receiving power of the modem.
virtual void SetEnergySource(Ptr< EnergySource > source)
static TypeId GetTypeId(void)
Register this type.
Ptr< EnergySource > m_source
The energy source.
void DoDispose(void)
This method is called by Object::Dispose or by the object&#39;s destructor, whichever comes first...
double GetSleepPowerW(void) const
Get the sleep state power of the modem.
double GetTxPowerW(void) const
Get the transmission power of the modem.
virtual Ptr< Node > GetNode(void) const
Gets pointer to node.
Time m_lastUpdateTime
Time stamp of previous energy update.
virtual void SetNode(Ptr< Node > node)
Sets pointer to node.
void SetSleepPowerW(double sleepPowerW)
Set the sleep power of the modem.
int GetCurrentState(void) const
Get the current state of the modem.
double m_txPowerW
The transmitter power, in watts.
double GetIdlePowerW(void) const
Get the idle power of the modem.
a unique identifier for an interface.
Definition: type-id.h:49
TracedValue< double > m_totalEnergyConsumption
The total energy consumed by this model.