A Discrete-Event Network Simulator
API
wifi-remote-station-info.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2005,2006,2007 INRIA
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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 
21 #include "ns3/simulator.h"
23 
24 namespace ns3 {
25 
27  : m_memoryTime (Seconds (1.0)),
28  m_lastUpdate (Seconds (0.0)),
29  m_failAvg (0.0)
30 {
31 }
32 
34 {
35 }
36 
37 double
39 {
40  double retval = std::exp ( ((m_lastUpdate - Now ()) / m_memoryTime).GetDouble () );
42  return retval;
43 }
44 
45 void
47 {
48  double coefficient = CalculateAveragingCoefficient ();
49  m_failAvg = static_cast<double> (retryCounter) / (1 + retryCounter) * (1 - coefficient) + coefficient * m_failAvg;
50 }
51 
52 void
54 {
55  double coefficient = CalculateAveragingCoefficient ();
56  m_failAvg = (1 - coefficient) + coefficient * m_failAvg;
57 }
58 
59 double
61 {
62  return m_failAvg;
63 }
64 
65 } //namespace ns3
ns3::WifiRemoteStationInfo::m_failAvg
double m_failAvg
moving percentage of failed frames
Definition: wifi-remote-station-info.h:69
ns3::Simulator::Now
static Time Now(void)
Return the current simulation virtual time.
Definition: simulator.cc:195
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::WifiRemoteStationInfo::m_memoryTime
Time m_memoryTime
averaging coefficient depends on the memory time
Definition: wifi-remote-station-info.h:67
ns3::WifiRemoteStationInfo::WifiRemoteStationInfo
WifiRemoteStationInfo()
Definition: wifi-remote-station-info.cc:26
ns3::WifiRemoteStationInfo::m_lastUpdate
Time m_lastUpdate
when last update has occurred
Definition: wifi-remote-station-info.h:68
wifi-remote-station-info.h
ns3::Now
Time Now(void)
create an ns3::Time instance which contains the current simulation time.
Definition: simulator.cc:287
ns3::WifiRemoteStationInfo::NotifyTxSuccess
void NotifyTxSuccess(uint32_t retryCounter)
Updates average frame error rate when data or RTS was transmitted successfully.
Definition: wifi-remote-station-info.cc:46
ns3::WifiRemoteStationInfo::NotifyTxFailed
void NotifyTxFailed()
Updates average frame error rate when final data or RTS has failed.
Definition: wifi-remote-station-info.cc:53
ns3::WifiRemoteStationInfo::GetFrameErrorRate
double GetFrameErrorRate() const
Return frame error rate (probability that frame is corrupted due to transmission error).
Definition: wifi-remote-station-info.cc:60
ns3::WifiRemoteStationInfo::CalculateAveragingCoefficient
double CalculateAveragingCoefficient()
Calculate averaging coefficient for frame error rate.
Definition: wifi-remote-station-info.cc:38
ns3::Seconds
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition: nstime.h:1289
ns3::WifiRemoteStationInfo::~WifiRemoteStationInfo
virtual ~WifiRemoteStationInfo()
Definition: wifi-remote-station-info.cc:33