#include <energy-model.h>
Inheritance diagram for EnergyModel:


Definition at line 88 of file energy-model.h.
Public Types | |
| enum | SleepState { WAITING = 0, POWERSAVING = 1, INROUTE = 2 } |
Public Member Functions | |
| int & | adaptivefidelity () |
| void | add_neighbor (u_int32_t) |
| virtual void | add_rcvtime (float t) |
| virtual void | add_sleeptime (float t) |
| virtual void | add_sndtime (float t) |
| AdaptiveFidelityEntity * | afe () |
| virtual void | DecrIdleEnergy (double idletime, double P_idle) |
| virtual void | DecrRcvEnergy (double rcvtime, double P_rcv) |
| virtual void | DecrSleepEnergy (double sleeptime, double P_sleep) |
| virtual void | DecrTransitionEnergy (double transitiontime, double P_transition) |
| virtual void | DecrTxEnergy (double txtime, double P_tx) |
| double | ei () const |
| double | energy () const |
| EnergyModel (MobileNode *n, double energy, double l1, double l2) | |
| double | er () const |
| double | es () const |
| double | et () const |
| int | getneighbors () |
| double | initialenergy () const |
| double | level1 () |
| double | level1 () const |
| double | level2 () |
| double | level2 () const |
| float & | max_inroute_time () |
| virtual double | MaxIdletime (double P_idle) |
| virtual double | MaxRcvtime (double P_rcv) |
| int & | maxttl () |
| virtual double | MaxTxtime (double P_tx) |
| bool & | node_on () |
| int & | powersavingflag () |
| void | scan_neighbor () |
| virtual void | set_node_sleep (int) |
| virtual void | set_node_state (int) |
| void | setenergy (double e) |
| int | sleep () |
| void | start_powersaving () |
| int | state () |
| float | state_start_time () |
| float & | total_idletime () |
| float & | total_rcvtime () |
| float & | total_sleeptime () |
| float & | total_sndtime () |
Protected Attributes | |
| int | adaptivefidelity_ |
| AdaptiveFidelityEntity * | afe_ |
| double | ei_ |
| double | energy_ |
| double | er_ |
| double | es_ |
| double | et_ |
| double | initialenergy_ |
| float | last_time_gosleep |
| double | level1_ |
| double | level2_ |
| float | max_inroute_time_ |
| int | maxttl_ |
| struct { | |
| neighbor_list_item * head | |
| int neighbor_cnt_ | |
| } | neighbor_list |
| MobileNode * | node_ |
| bool | node_on_ |
| int | powersavingflag_ |
| int | sleep_mode_ |
| SoftNeighborHandler * | snh_ |
| int | state_ |
| float | state_start_time_ |
| float | total_idletime_ |
| float | total_rcvtime_ |
| float | total_sleeptime_ |
| float | total_sndtime_ |
Data Structures | |
| struct | neighbor_list_item |
|
|
Definition at line 164 of file energy-model.h. 00164 { WAITING = 0, POWERSAVING = 1, INROUTE = 2 };
|
|
||||||||||||||||||||
|
Definition at line 90 of file energy-model.h. References neighbor_list. 00090 : 00091 energy_(energy), er_(0), et_(0),ei_(0), es_(0), 00092 initialenergy_(energy), 00093 level1_(l1), level2_(l2), node_(n), 00094 sleep_mode_(0), total_sleeptime_(0), total_rcvtime_(0), 00095 total_sndtime_(0), powersavingflag_(0), 00096 last_time_gosleep(0), max_inroute_time_(300), maxttl_(5), 00097 adaptivefidelity_(1), node_on_(true) 00098 { 00099 neighbor_list.neighbor_cnt_ = 0; 00100 neighbor_list.head = NULL; 00101 }
|
|
|
Definition at line 142 of file energy-model.h. References adaptivefidelity_. Referenced by AdaptiveFidelityEntity::adapt_it(), and MobileNode::command(). 00142 { return adaptivefidelity_; }
|
|
|
Definition at line 202 of file energy-model.cc. References EnergyModel::neighbor_list_item::id, maxttl_, neighbor_list, EnergyModel::neighbor_list_item::next, and EnergyModel::neighbor_list_item::ttl. Referenced by Phy802_15_4::recv(). 00203 { 00204 neighbor_list_item *np; 00205 np = neighbor_list.head; 00206 for (; np; np = np->next) { 00207 if (np->id == nodeid) { 00208 np->ttl = maxttl_; 00209 break; 00210 } 00211 } 00212 if (!np) { // insert this new entry 00213 np = new neighbor_list_item; 00214 np->id = nodeid; 00215 np->ttl = maxttl_; 00216 np->next = neighbor_list.head; 00217 neighbor_list.head = np; 00218 neighbor_list.neighbor_cnt_++; 00219 } 00220 }
|
|
|
Definition at line 156 of file energy-model.h. References total_rcvtime_. 00156 {total_rcvtime_ += t;}
|
|
|
Definition at line 159 of file energy-model.h. References total_sleeptime_. 00159 {total_sleeptime_ += t;};
|
|
|
Definition at line 157 of file energy-model.h. References total_sndtime_. 00157 {total_sndtime_ += t;}
|
|
|
Definition at line 151 of file energy-model.h. References afe_. Referenced by MobileNode::command(). 00151 { return afe_; }
|
|
||||||||||||
|
Definition at line 94 of file energy-model.cc. References God::ComputeRoute(), ei_, energy_, and God::instance(). Referenced by WirelessPhy::command(), WirelessPhy::node_off(), WirelessPhy::node_sleep(), WirelessPhy::sendDown(), and WirelessPhy::sendUp(). 00095 { 00096 double dEng = P_idle * idletime; 00097 if (energy_ <= dEng) 00098 energy_ = 0.0; 00099 else 00100 energy_ = energy_ - dEng; 00101 if (energy_ <= 0.0) 00102 God::instance()->ComputeRoute(); 00103 // 00104 // This variable keeps track of total energy consumption in IDLE mode.. 00105 ei_=ei_+dEng; 00106 // 00107 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 79 of file energy-model.cc. References God::ComputeRoute(), energy_, er_, and God::instance(). Referenced by WirelessPhy::sendUp(). 00080 { 00081 double dEng = P_rcv * rcvtime; 00082 if (energy_ <= dEng) 00083 energy_ = 0.0; 00084 else 00085 energy_ = energy_ - dEng; 00086 if (energy_ <= 0.0) 00087 God::instance()->ComputeRoute(); 00088 // 00089 // This variable keeps track of total energy consumption in RECV mode.. 00090 er_=er_+dEng; 00091 // 00092 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 110 of file energy-model.cc. References God::ComputeRoute(), energy_, es_, and God::instance(). Referenced by WirelessPhy::node_wakeup(). 00111 { 00112 double dEng = P_sleep * sleeptime; 00113 if (energy_ <= dEng) 00114 energy_ = 0.0; 00115 else 00116 energy_ = energy_ - dEng; 00117 if (energy_ <= 0.0) 00118 God::instance()->ComputeRoute(); 00119 00120 // This variable keeps track of total energy consumption in SLEEP mode.. 00121 es_=es_+dEng; 00122 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 124 of file energy-model.cc. References God::ComputeRoute(), energy_, and God::instance(). Referenced by WirelessPhy::node_sleep(), and WirelessPhy::node_wakeup(). 00125 { 00126 double dEng = P_transition * transitiontime; 00127 if (energy_ <= dEng) 00128 energy_ = 0.0; 00129 else 00130 energy_ = energy_ - dEng; 00131 if (energy_ <= 0.0) 00132 God::instance()->ComputeRoute(); 00133 }
Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 63 of file energy-model.cc. References God::ComputeRoute(), energy_, et_, and God::instance(). Referenced by WirelessPhy::sendDown(). 00064 { 00065 double dEng = P_tx * txtime; 00066 if (energy_ <= dEng) 00067 energy_ = 0.0; 00068 else 00069 energy_ = energy_ - dEng; 00070 if (energy_ <= 0.0) 00071 God::instance()->ComputeRoute(); 00072 // 00073 // This variable keeps track of total energy consumption in Transmission.. 00074 et_=et_+dEng; 00075 // 00076 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 107 of file energy-model.h. References ei_. 00107 { return ei_; }
|
|
|
Definition at line 103 of file energy-model.h. References energy_. Referenced by EnergyTimer::EnergyTimer(), EnergyTimer::expire(), CMUTrace::format_mac_common(), MobileNode::log_energy(), CMUTrace::nam_format(), CMUTrace::node_energy(), Mac802_15_4::recv(), and Mac802_15_4::sendDown(). 00103 { return energy_; }
|
|
|
Definition at line 106 of file energy-model.h. References er_. 00106 { return er_; }
|
|
|
Definition at line 108 of file energy-model.h. References es_. 00108 { return es_; }
|
|
|
Definition at line 105 of file energy-model.h. References et_. 00105 { return et_; }
|
|
|
Definition at line 134 of file energy-model.h. References neighbor_list. Referenced by AdaptiveFidelityEntity::adapt_it(). 00134 { return neighbor_list.neighbor_cnt_; }
|
|
|
Definition at line 110 of file energy-model.h. References initialenergy_. Referenced by CMUTrace::nam_format(). 00110 { return initialenergy_; }
|
|
|
Definition at line 136 of file energy-model.h. References level1_. 00136 { return level1_; }
|
|
|
Definition at line 111 of file energy-model.h. References level1_. Referenced by CMUTrace::nam_format(). 00111 { return level1_; }
|
|
|
Definition at line 137 of file energy-model.h. References level2_. 00137 { return level2_; }
|
|
|
Definition at line 112 of file energy-model.h. References level2_. Referenced by CMUTrace::nam_format(). 00112 { return level2_; }
|
|
|
Definition at line 141 of file energy-model.h. References max_inroute_time_. Referenced by MobileNode::command(), and AdaptiveFidelityEntity::handle(). 00141 { return max_inroute_time_; }
|
|
|
Definition at line 128 of file energy-model.h. References energy_. 00128 { 00129 return(energy_/P_idle); 00130 }
|
|
|
Definition at line 125 of file energy-model.h. References energy_. 00125 { 00126 return(energy_/P_rcv); 00127 }
|
|
|
Definition at line 152 of file energy-model.h. References maxttl_. Referenced by MobileNode::command(). 00152 { return maxttl_; }
|
|
|
Definition at line 122 of file energy-model.h. References energy_. 00122 { 00123 return(energy_/P_tx); 00124 }
|
|
|
Definition at line 144 of file energy-model.h. References node_on_. Referenced by MobileNode::command(), GAFAgent::node_off(), and GAFAgent::node_on(). 00144 { return node_on_; }
|
|
|
Definition at line 143 of file energy-model.h. References powersavingflag_. Referenced by MobileNode::command(), and CMUTrace::format_rtp(). 00143 { return powersavingflag_; }
|
|
|
Definition at line 222 of file energy-model.cc. References neighbor_list, EnergyModel::neighbor_list_item::next, and EnergyModel::neighbor_list_item::ttl. Referenced by SoftNeighborHandler::handle(). 00223 { 00224 neighbor_list_item *np, *lp; 00225 if (neighbor_list.neighbor_cnt_ > 0) { 00226 lp = neighbor_list.head; 00227 np = lp->next; 00228 for (; np; np = np->next) { 00229 np->ttl--; 00230 if (np->ttl <= 0){ 00231 lp->next = np->next; 00232 delete np; 00233 np = lp; 00234 neighbor_list.neighbor_cnt_--; 00235 } 00236 lp = np; 00237 } 00238 // process the first element 00239 np = neighbor_list.head; 00240 np->ttl--; 00241 if (np->ttl <= 0) { 00242 neighbor_list.head = np->next; 00243 delete np; 00244 neighbor_list.neighbor_cnt_--; 00245 } 00246 } 00247 }
|
|
|
Definition at line 150 of file energy-model.cc. References Scheduler::clock(), Node::exist_namchan(), Scheduler::instance(), last_time_gosleep, node_, sleep_mode_, and total_sleeptime_. Referenced by AdaptiveFidelityEntity::handle(), Mac802_15_4::recv(), Mac802_11::send(), and AdaptiveFidelityEntity::start(). 00151 { 00152 Tcl& tcl=Tcl::instance(); 00153 //static float last_time_gosleep; 00154 // status = 1 to set node into sleep mode 00155 // status = 0 to put node back to idle mode. 00156 // time in the sleep mode should be used as credit to idle 00157 // time energy consumption 00158 if (status) { 00159 last_time_gosleep = Scheduler::instance().clock(); 00160 //printf("id=%d : put node into sleep at %f\n", 00161 // address_,last_time_gosleep); 00162 sleep_mode_ = status; 00163 if (node_->exist_namchan()) 00164 tcl.evalf("%s add-mark m1 blue hexagon",node_->name()); 00165 } else { 00166 sleep_mode_ = status; 00167 if (node_->exist_namchan()) 00168 tcl.evalf("%s delete-mark m1", node_->name()); 00169 //printf("id= %d last_time_sleep = %f\n", 00170 // address_, last_time_gosleep); 00171 if (last_time_gosleep) { 00172 total_sleeptime_ += Scheduler::instance().clock() - 00173 last_time_gosleep; 00174 last_time_gosleep = 0; 00175 } 00176 } 00177 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 179 of file energy-model.cc. References abort(), Scheduler::clock(), INROUTE, Scheduler::instance(), POWERSAVING, state_, state_start_time_, and WAITING. Referenced by CMUTrace::format_rtp(), Mac802_15_4::recv(), and Mac802_11::send(). 00180 { 00181 switch (state_) { 00182 case POWERSAVING: 00183 case WAITING: 00184 state_ = state; 00185 state_start_time_ = Scheduler::instance().clock(); 00186 break; 00187 case INROUTE: 00188 if (state == POWERSAVING) { 00189 state_ = state; 00190 } else if (state == INROUTE) { 00191 // a data packet is forwarded, needs to reset 00192 // state_start_time_ 00193 state_start_time_= Scheduler::instance().clock(); 00194 } 00195 break; 00196 default: 00197 printf("Wrong state, quit...\n"); 00198 abort(); 00199 } 00200 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 113 of file energy-model.h. References energy_. Referenced by MobileNode::command(), WirelessPhy::sendDown(), and WirelessPhy::sendUp(). 00113 { energy_ = e; }
|
|
|
Definition at line 138 of file energy-model.h. References sleep_mode_. Referenced by AdaptiveFidelityEntity::handle(), Mac802_15_4::recv(), Mac802_11::send(), and WirelessPhy::UpdateSleepEnergy(). 00138 { return sleep_mode_; }
|
|
|
Definition at line 138 of file energy-model.cc. References afe_, Scheduler::clock(), Scheduler::instance(), POWERSAVING, snh_, AdaptiveFidelityEntity::start(), SoftNeighborHandler::start(), state_, and state_start_time_. Referenced by MobileNode::command(). 00139 { 00140 snh_ = new SoftNeighborHandler(this); 00141 snh_->start(); 00142 00143 afe_ = new AdaptiveFidelityEntity(this); 00144 afe_->start(); 00145 00146 state_ = EnergyModel::POWERSAVING; 00147 state_start_time_ = Scheduler::instance().clock(); 00148 }
Here is the call graph for this function: ![]() |
|
|
Definition at line 139 of file energy-model.h. References state_. Referenced by AdaptiveFidelityEntity::handle(). 00139 { return state_; }
|
|
|
Definition at line 140 of file energy-model.h. References state_start_time_. Referenced by AdaptiveFidelityEntity::handle(). 00140 { return state_start_time_; }
|
|
|
Definition at line 149 of file energy-model.h. References total_idletime_. 00149 { return total_idletime_;}
|
|
|
Definition at line 146 of file energy-model.h. References total_rcvtime_. Referenced by MobileNode::command(). 00146 { return total_rcvtime_; }
|
|
|
Definition at line 147 of file energy-model.h. References total_sleeptime_. Referenced by MobileNode::command(). 00147 { return total_sleeptime_; }
|
|
|
Definition at line 145 of file energy-model.h. References total_sndtime_. Referenced by MobileNode::command(). 00145 { return total_sndtime_; }
|
|
|
Definition at line 208 of file energy-model.h. Referenced by adaptivefidelity(). |
|
|
Definition at line 209 of file energy-model.h. Referenced by afe(), and start_powersaving(). |
|
|
Definition at line 171 of file energy-model.h. Referenced by DecrIdleEnergy(), and ei(). |
|
|
Definition at line 167 of file energy-model.h. Referenced by DecrIdleEnergy(), DecrRcvEnergy(), DecrSleepEnergy(), DecrTransitionEnergy(), DecrTxEnergy(), energy(), MaxIdletime(), MaxRcvtime(), MaxTxtime(), and setenergy(). |
|
|
Definition at line 169 of file energy-model.h. Referenced by DecrRcvEnergy(), and er(). |
|
|
Definition at line 172 of file energy-model.h. Referenced by DecrSleepEnergy(), and es(). |
|
|
Definition at line 170 of file energy-model.h. Referenced by DecrTxEnergy(), and et(). |
|
|
Definition at line 189 of file energy-model.h. |
|
|
Definition at line 174 of file energy-model.h. Referenced by initialenergy(). |
|
|
Definition at line 201 of file energy-model.h. Referenced by set_node_sleep(). |
|
|
Definition at line 175 of file energy-model.h. Referenced by level1(). |
|
|
Definition at line 176 of file energy-model.h. Referenced by level2(). |
|
|
Definition at line 202 of file energy-model.h. Referenced by max_inroute_time(). |
|
|
Definition at line 204 of file energy-model.h. Referenced by add_neighbor(), and maxttl(). |
|
|
Definition at line 188 of file energy-model.h. |
|
|
Referenced by add_neighbor(), EnergyModel(), getneighbors(), and scan_neighbor(). |
|
|
Definition at line 178 of file energy-model.h. Referenced by set_node_sleep(). |
|
|
Definition at line 211 of file energy-model.h. Referenced by node_on(). |
|
|
Definition at line 200 of file energy-model.h. Referenced by powersavingflag(). |
|
|
Definition at line 193 of file energy-model.h. Referenced by set_node_sleep(), and sleep(). |
|
|
Definition at line 191 of file energy-model.h. Referenced by start_powersaving(). |
|
|
Definition at line 206 of file energy-model.h. Referenced by set_node_state(), start_powersaving(), and state(). |
|
|
Definition at line 207 of file energy-model.h. Referenced by set_node_state(), start_powersaving(), and state_start_time(). |
|
|
Definition at line 198 of file energy-model.h. Referenced by total_idletime(). |
|
|
Definition at line 195 of file energy-model.h. Referenced by add_rcvtime(), and total_rcvtime(). |
|
|
Definition at line 194 of file energy-model.h. Referenced by add_sleeptime(), set_node_sleep(), and total_sleeptime(). |
|
|
Definition at line 196 of file energy-model.h. Referenced by add_sndtime(), and total_sndtime(). |
1.4.6