author | Mitch Watrous <watrous@u.washington.edu> |
Wed, 18 May 2011 14:56:28 -0700 | |
changeset 7238 | 85a7e87bb4cc |
parent 6938 | 85d201f1c67f |
child 7353 | 09fccf6195ea |
permissions | -rw-r--r-- |
6715
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
1 |
/* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
2 |
* simple-device-energy-model.h |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
3 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
4 |
* Created on: 09/ago/2010 |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
5 |
* Author: socket |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
6 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
7 |
#ifndef SIMPLE_DEVICE_ENERGY_MODEL_H_ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
8 |
#define SIMPLE_DEVICE_ENERGY_MODEL_H_ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
9 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
10 |
#include "ns3/device-energy-model.h" |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
11 |
#include "ns3/nstime.h" |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
12 |
#include "ns3/traced-value.h" |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
13 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
14 |
namespace ns3 { |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
15 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
16 |
/** |
7238
85a7e87bb4cc
Make some more modules show up on doxygen modules page
Mitch Watrous <watrous@u.washington.edu>
parents:
6938
diff
changeset
|
17 |
* \ingroup energy |
6715
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
18 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
19 |
* A simple device energy model where current drain can be set by the user. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
20 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
21 |
* It is supposed to be used as a testing model for energy sources. |
7238
85a7e87bb4cc
Make some more modules show up on doxygen modules page
Mitch Watrous <watrous@u.washington.edu>
parents:
6938
diff
changeset
|
22 |
* |
6715
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
23 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
24 |
class SimpleDeviceEnergyModel : public DeviceEnergyModel |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
25 |
{ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
26 |
public: |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
27 |
static TypeId GetTypeId (void); |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
28 |
SimpleDeviceEnergyModel (); |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
29 |
virtual ~SimpleDeviceEnergyModel (); |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
30 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
31 |
/** |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
32 |
* \brief Sets pointer to node. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
33 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
34 |
* \param node Pointer to node. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
35 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
36 |
* Implements DeviceEnergyModel::SetNode. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
37 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
38 |
virtual void SetNode (Ptr<Node> node); |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
39 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
40 |
/** |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
41 |
* \brief Gets pointer to node. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
42 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
43 |
* \returns Pointer to node. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
44 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
45 |
* Implements DeviceEnergyModel::GetNode. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
46 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
47 |
virtual Ptr<Node> GetNode (void) const; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
48 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
49 |
/** |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
50 |
* \brief Sets pointer to EnergySouce installed on node. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
51 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
52 |
* \param source Pointer to EnergySource installed on node. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
53 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
54 |
* Implements DeviceEnergyModel::SetEnergySource. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
55 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
56 |
virtual void SetEnergySource (Ptr<EnergySource> source); |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
57 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
58 |
/** |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
59 |
* \returns Total energy consumption of the vehicle. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
60 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
61 |
* Implements DeviceEnergyModel::GetTotalEnergyConsumption. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
62 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
63 |
virtual double GetTotalEnergyConsumption (void) const; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
64 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
65 |
/** |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
66 |
* \param newState New state the device is in. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
67 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
68 |
* Not implemented |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
69 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
70 |
virtual void ChangeState (int newState) |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
71 |
{ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
72 |
} |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
73 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
74 |
/** |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
75 |
* \brief Handles energy depletion. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
76 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
77 |
* Not implemented |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
78 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
79 |
virtual void HandleEnergyDepletion (void) |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
80 |
{ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
81 |
} |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
82 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
83 |
/** |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
84 |
* \param current the current draw of device. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
85 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
86 |
* Set the actual current draw of the device. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
87 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
88 |
void SetCurrentA (double current); |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
89 |
private: |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
90 |
void DoDispose (void); |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
91 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
92 |
/** |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
93 |
* \returns Current draw of device, at current state. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
94 |
* |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
95 |
* Implements DeviceEnergyModel::GetCurrentA. |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
96 |
*/ |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
97 |
virtual double DoGetCurrentA (void) const; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
98 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
99 |
Time m_lastUpdateTime; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
100 |
double m_actualCurrentA; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
101 |
Ptr<EnergySource> m_source; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
102 |
Ptr<Node> m_node; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
103 |
TracedValue<double> m_totalEnergyConsumption; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
104 |
}; |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
105 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
106 |
} // namespace ns3 |
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
107 |
|
ba60c821ad35
Energy support for UAN module and Li-Ion energy model
Andrea Sacco <andrea.sacco85@gmail.com>
parents:
diff
changeset
|
108 |
#endif /* SIMPLE_DEVICE_ENERGY_MODEL_H_ */ |