src/energy/model/wifi-radio-energy-model.h
author Mitch Watrous <watrous@u.washington.edu>
Wed, 18 May 2011 14:56:28 -0700
changeset 7238 85a7e87bb4cc
parent 6938 85d201f1c67f
child 7385 10beb0e53130
permissions -rw-r--r--
Make some more modules show up on doxygen modules page
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     2
/*
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     3
 * Copyright (c) 2010 Network Security Lab, University of Washington, Seattle.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     4
 *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     8
 *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    12
 * GNU General Public License for more details.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    13
 *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    17
 *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    18
 * Authors: Sidharth Nabar <snabar@uw.edu>, He Wu <mdzz@u.washington.edu>
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    19
 */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    20
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    21
#ifndef WIFI_RADIO_ENERGY_MODEL_H
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    22
#define WIFI_RADIO_ENERGY_MODEL_H
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    23
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    24
#include "ns3/device-energy-model.h"
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    25
#include "ns3/nstime.h"
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    26
#include "ns3/event-id.h"
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    27
#include "ns3/traced-value.h"
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    28
#include "ns3/wifi-phy.h"
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    29
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    30
namespace ns3 {
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    31
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
    32
/**
7238
85a7e87bb4cc Make some more modules show up on doxygen modules page
Mitch Watrous <watrous@u.washington.edu>
parents: 6938
diff changeset
    33
 * \ingroup energy
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    34
 * A WifiPhy listener class for notifying the WifiRadioEnergyModel of Wifi radio
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    35
 * state change.
7238
85a7e87bb4cc Make some more modules show up on doxygen modules page
Mitch Watrous <watrous@u.washington.edu>
parents: 6938
diff changeset
    36
 *
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    37
 */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    38
class WifiRadioEnergyModelPhyListener : public WifiPhyListener
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    39
{
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    40
public:
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    41
  WifiRadioEnergyModelPhyListener ();
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    42
  virtual ~WifiRadioEnergyModelPhyListener ();
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    43
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    44
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    45
   * \brief Sets the change state callback. Used by helper class.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    46
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    47
   * \param callback Change state callback.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    48
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    49
  void SetChangeStateCallback (DeviceEnergyModel::ChangeStateCallback callback);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    50
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    51
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    52
   * \brief Switches the WifiRadioEnergyModel to RX state.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    53
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    54
   * \param duration the expected duration of the packet reception.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    55
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    56
   * Defined in ns3::WifiPhyListener
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    57
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    58
  virtual void NotifyRxStart (Time duration);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    59
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    60
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    61
   * \brief Switches the WifiRadioEnergyModel back to IDLE state.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    62
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    63
   * Defined in ns3::WifiPhyListener
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    64
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    65
   * Note that for the WifiRadioEnergyModel, the behavior of the function is the
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    66
   * same as NotifyRxEndError.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    67
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    68
  virtual void NotifyRxEndOk (void);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    69
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    70
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    71
   * \brief Switches the WifiRadioEnergyModel back to IDLE state.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    72
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    73
   * Defined in ns3::WifiPhyListener
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    74
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    75
   * Note that for the WifiRadioEnergyModel, the behavior of the function is the
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    76
   * same as NotifyRxEndOk.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    77
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    78
  virtual void NotifyRxEndError (void);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    79
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    80
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    81
   * \brief Switches the WifiRadioEnergyModel to TX state and switches back to
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    82
   * IDLE after TX duration.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    83
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    84
   * \param duration the expected transmission duration.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    85
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    86
   * Defined in ns3::WifiPhyListener
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    87
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    88
  virtual void NotifyTxStart (Time duration);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    89
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    90
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    91
   * \param duration the expected busy duration.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    92
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    93
   * Defined in ns3::WifiPhyListener
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    94
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    95
  virtual void NotifyMaybeCcaBusyStart (Time duration);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    96
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    97
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    98
   * \param duration the expected channel switching duration.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
    99
   *
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   100
   * Defined in ns3::WifiPhyListener
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   101
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   102
  virtual void NotifySwitchingStart (Time duration);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   103
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   104
private:
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   105
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   106
   * A helper function that makes scheduling m_changeStateCallback possible.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   107
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   108
  void SwitchToIdle (void);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   109
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   110
private:
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   111
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   112
   * Change state callback used to notify the WifiRadioEnergyModel of a state
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   113
   * change.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   114
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   115
  DeviceEnergyModel::ChangeStateCallback m_changeStateCallback;
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   116
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   117
  EventId m_switchToIdleEvent;
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   118
};
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   119
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   120
// -------------------------------------------------------------------------- //
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   121
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   122
/**
7238
85a7e87bb4cc Make some more modules show up on doxygen modules page
Mitch Watrous <watrous@u.washington.edu>
parents: 6938
diff changeset
   123
 * \ingroup energy
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   124
 * \brief A WiFi radio energy model.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   125
 * 
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   126
 * 4 states are defined for the radio: TX, RX, IDLE, SLEEP. Default state is
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   127
 * IDLE.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   128
 * The different types of transactions that are defined are: 
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   129
 *  1. Tx: State goes from IDLE to TX, radio is in TX state for TX_duration,
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   130
 *     then state goes from TX to IDLE.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   131
 *  2. Rx: State goes from IDLE to RX, radio is in RX state for RX_duration,
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   132
 *     then state goes from RX to IDLE.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   133
 *  3. Go_to_Sleep: State goes from IDLE to SLEEP.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   134
 *  4. End_of_Sleep: State goes from SLEEP to IDLE.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   135
 * The class keeps track of what state the radio is currently in.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   136
 *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   137
 * Energy calculation: For each transaction, this model notifies EnergySource
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   138
 * object. The EnergySource object will query this model for the total current.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   139
 * Then the EnergySource object uses the total current to calculate energy.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   140
 *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   141
 * Default values for power consumption are based on CC2420 radio chip, with
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   142
 * supply voltage as 2.5V and currents as 17.4 mA (TX), 18.8 mA (RX), 20 uA
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   143
 * (sleep) and 426 uA (idle).
7238
85a7e87bb4cc Make some more modules show up on doxygen modules page
Mitch Watrous <watrous@u.washington.edu>
parents: 6938
diff changeset
   144
 *
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   145
 */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   146
class WifiRadioEnergyModel : public DeviceEnergyModel
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   147
{
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   148
public:
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   149
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   150
   * Callback type for energy depletion handling.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   151
   */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   152
  typedef Callback<void> WifiRadioEnergyDepletionCallback;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   153
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   154
public:
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   155
  static TypeId GetTypeId (void);
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   156
  WifiRadioEnergyModel ();
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   157
  virtual ~WifiRadioEnergyModel ();
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   158
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   159
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   160
   * \brief Sets pointer to EnergySouce installed on node.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   161
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   162
   * \param source Pointer to EnergySource installed on node.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   163
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   164
   * Implements DeviceEnergyModel::SetEnergySource.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   165
   */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   166
  virtual void SetEnergySource (Ptr<EnergySource> source);
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   167
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   168
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   169
   * \returns Total energy consumption of the wifi device.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   170
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   171
   * Implements DeviceEnergyModel::GetTotalEnergyConsumption.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   172
   */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   173
  virtual double GetTotalEnergyConsumption (void) const;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   174
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   175
  // Setter & getters for state power consumption.
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   176
  double GetIdleCurrentA (void) const;
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   177
  void SetIdleCurrentA (double idleCurrentA);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   178
  double GetCcaBusyCurrentA (void) const;
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   179
  void SetCcaBusyCurrentA (double ccaBusyCurrentA);
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   180
  double GetTxCurrentA (void) const;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   181
  void SetTxCurrentA (double txCurrentA);
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   182
  double GetRxCurrentA (void) const;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   183
  void SetRxCurrentA (double rxCurrentA);
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   184
  double GetSwitchingCurrentA (void) const;
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   185
  void SetSwitchingCurrentA (double switchingCurrentA);
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   186
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   187
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   188
   * \returns Current state.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   189
   */
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   190
  WifiPhy::State GetCurrentState (void) const;
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   191
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   192
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   193
   * \param callback Callback function.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   194
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   195
   * Sets callback for energy depletion handling.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   196
   */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   197
  void SetEnergyDepletionCallback (WifiRadioEnergyDepletionCallback callback);
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   198
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   199
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   200
   * \brief Changes state of the WifiRadioEnergyMode.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   201
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   202
   * \param newState New state the wifi radio is in.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   203
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   204
   * Implements DeviceEnergyModel::ChangeState.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   205
   */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   206
  virtual void ChangeState (int newState);
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   207
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   208
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   209
   * \brief Handles energy depletion.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   210
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   211
   * Implements DeviceEnergyModel::HandleEnergyDepletion
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   212
   */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   213
  virtual void HandleEnergyDepletion (void);
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   214
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   215
  /**
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   216
   * \returns Pointer to the PHY listener.
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   217
   */
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   218
  WifiRadioEnergyModelPhyListener * GetPhyListener (void);
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   219
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   220
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   221
private:
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   222
  void DoDispose (void);
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   223
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   224
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   225
   * \returns Current draw of device, at current state.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   226
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   227
   * Implements DeviceEnergyModel::GetCurrentA.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   228
   */
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   229
  virtual double DoGetCurrentA (void) const;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   230
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   231
  /**
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   232
   * \param currentState New state the radio device is currently in.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   233
   *
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   234
   * Sets current state. This function is private so that only the energy model
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   235
   * can change its own state.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   236
   */
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   237
  void SetWifiRadioState (const WifiPhy::State state);
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   238
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   239
private:
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   240
  Ptr<EnergySource> m_source;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   241
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   242
  // Member variables for current draw in different radio modes.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   243
  double m_txCurrentA;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   244
  double m_rxCurrentA;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   245
  double m_idleCurrentA;
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   246
  double m_ccaBusyCurrentA;
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   247
  double m_switchingCurrentA;
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   248
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   249
  // This variable keeps track of the total energy consumed by this model.
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   250
  TracedValue<double> m_totalEnergyConsumption;
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   251
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   252
  // State variables.
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   253
  WifiPhy::State m_currentState;  // current state the radio is in
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   254
  Time m_lastUpdateTime;          // time stamp of previous energy update
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   255
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   256
  // Energy depletion callback
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   257
  WifiRadioEnergyDepletionCallback m_energyDepletionCallback;
6699
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   258
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   259
  // WifiPhy listener
d8909a1fd0ff RV battery model and WiFi energy example
He Wu <mdzz@u.washington.edu>
parents: 6535
diff changeset
   260
  WifiRadioEnergyModelPhyListener *m_listener;
6535
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   261
};
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   262
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   263
} // namespace ns3
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   264
0a90ef2b29a9 Apply energy model changes of http://codereview.appspot.com/1008043/show patchset 13
He Wu <mdzz@u.washington.edu>
parents:
diff changeset
   265
#endif /* WIFI_RADIO_ENERGY_MODEL_H */