packages/uan/model/uan-phy-dual.cc
author Mitch Watrous <watrous@u.washington.edu>
Tue, 26 Oct 2010 08:41:33 -0700
changeset 6622 66d4eab148ce
child 6624 601c5f38d7ca
permissions -rw-r--r--
Added UAN package
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6622
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     2
/*
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     3
 * Copyright (c) 2009 University of Washington
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     4
 *
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     8
 *
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    12
 * GNU General Public License for more details.
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    13
 *
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    17
 *
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    18
 * Author: Leonard Tracy <lentracy@gmail.com>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    19
 */
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    20
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    21
#include "uan-phy.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    22
#include "uan-phy-dual.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    23
#include "uan-phy-gen.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    24
#include "uan-tx-mode.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    25
#include "uan-net-device.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    26
#include "uan-channel.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    27
#include "ns3/double.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    28
#include "ns3/log.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    29
#include "ns3/ptr.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    30
#include "ns3/traced-callback.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    31
#include "ns3/trace-source-accessor.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    32
#include "ns3/simulator.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    33
#include "uan-header-common.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    34
#include "uan-mac-rc.h"
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    35
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    36
#include <cmath>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    37
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    38
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    39
NS_LOG_COMPONENT_DEFINE ("UanPhyDual");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    40
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    41
namespace ns3 {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    42
namespace uan {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    43
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    44
NS_OBJECT_ENSURE_REGISTERED (UanPhyDual);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    45
NS_OBJECT_ENSURE_REGISTERED (UanPhyCalcSinrDual);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    46
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    47
UanPhyCalcSinrDual::UanPhyCalcSinrDual ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    48
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    49
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    50
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    51
UanPhyCalcSinrDual::~UanPhyCalcSinrDual ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    52
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    53
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    54
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    55
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    56
TypeId
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    57
UanPhyCalcSinrDual::GetTypeId (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    58
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    59
  static TypeId tid = TypeId ("ns3::UanPhyCalcSinrDual")
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    60
    .SetParent<Object> ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    61
    .AddConstructor<UanPhyCalcSinrDual> ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    62
  ;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    63
  return tid;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    64
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    65
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    66
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    67
UanPhyCalcSinrDual::CalcSinrDb (Ptr<Packet> pkt,
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    68
                                Time arrTime,
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    69
                                double rxPowerDb,
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    70
                                double ambNoiseDb,
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    71
                                UanTxMode mode,
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    72
                                UanPdp pdp,
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    73
                                const UanTransducer::ArrivalList &arrivalList) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    74
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    75
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    76
  if (mode.GetModType () != UanTxMode::OTHER)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    77
    {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    78
      NS_LOG_WARN ("Calculating SINR for unsupported modulation type");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    79
    }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    80
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    81
  double intKp = -DbToKp (rxPowerDb); // This packet is in the arrivalList
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    82
  UanTransducer::ArrivalList::const_iterator it = arrivalList.begin ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    83
  for (; it != arrivalList.end (); it++)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    84
    {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    85
      // Only count interference if there is overlap in incoming frequency
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    86
      if (std::abs ( (double) it->GetTxMode ().GetCenterFreqHz () - (double) mode.GetCenterFreqHz ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    87
          < (double)(it->GetTxMode ().GetBandwidthHz () / 2 + mode.GetBandwidthHz () / 2) - 0.5)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    88
        {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    89
          UanHeaderCommon ch, ch2;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    90
          if (pkt)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    91
            {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    92
              pkt->PeekHeader (ch);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    93
            }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    94
          it->GetPacket ()->PeekHeader (ch2);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    95
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    96
          if (pkt)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    97
            {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    98
              if (ch.GetType () == UanMacRc::TYPE_DATA)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
    99
                {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   100
                  NS_LOG_DEBUG ("Adding interferer from " << ch2.GetSrc () << " against " << ch.GetSrc () << ": PktRxMode: "
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   101
                                                          << mode.GetName () << " Int mode: " << it->GetTxMode ().GetName () << " Separation: "
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   102
                                                          << std::abs ( (double) it->GetTxMode ().GetCenterFreqHz () - (double) mode.GetCenterFreqHz ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   103
                                                          << " Combined bandwidths: " << (double)(it->GetTxMode ().GetBandwidthHz () / 2 + mode.GetBandwidthHz () / 2) - 0.5);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   104
                }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   105
            }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   106
          intKp += DbToKp (it->GetRxPowerDb ());
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   107
        }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   108
    }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   109
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   110
  double totalIntDb = KpToDb (intKp + DbToKp (ambNoiseDb));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   111
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   112
  NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Calculating SINR:  RxPower = " << rxPowerDb << " dB.  Number of interferers = " << arrivalList.size () << "  Interference + noise power = " << totalIntDb << " dB.  SINR = " << rxPowerDb - totalIntDb << " dB.");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   113
  return rxPowerDb - totalIntDb;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   114
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   115
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   116
UanPhyDual::UanPhyDual ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   117
  :  UanPhy ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   118
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   119
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   120
  m_phy1 = CreateObject<UanPhyGen> ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   121
  m_phy2 = CreateObject<UanPhyGen> ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   122
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   123
  m_phy1->SetReceiveOkCallback (m_recOkCb);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   124
  m_phy2->SetReceiveOkCallback (m_recOkCb);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   125
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   126
  m_phy1->SetReceiveErrorCallback (m_recErrCb);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   127
  m_phy2->SetReceiveErrorCallback (m_recErrCb);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   128
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   129
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   130
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   131
UanPhyDual::~UanPhyDual ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   132
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   133
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   134
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   135
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   136
UanPhyDual::Clear ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   137
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   138
  if (m_phy1)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   139
    {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   140
      m_phy1->Clear ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   141
      m_phy1 = 0;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   142
    }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   143
  if (m_phy2)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   144
    {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   145
      m_phy2->Clear ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   146
      m_phy2 = 0;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   147
    }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   148
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   149
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   150
UanPhyDual::DoDispose ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   151
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   152
  Clear ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   153
  UanPhy::DoDispose ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   154
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   155
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   156
TypeId
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   157
UanPhyDual::GetTypeId (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   158
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   159
  static TypeId tid = TypeId ("ns3::UanPhyDual")
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   160
    .SetParent<UanPhy> ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   161
    .AddConstructor<UanPhyDual> ()
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   162
    .AddAttribute  ("CcaThresholdPhy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   163
                    "Aggregate energy of incoming signals to move to CCA Busy state dB of Phy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   164
                    DoubleValue (10),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   165
                    MakeDoubleAccessor (&UanPhyDual::GetCcaThresholdPhy1, &UanPhyDual::SetCcaThresholdPhy1),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   166
                    MakeDoubleChecker<double> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   167
    .AddAttribute ("CcaThresholdPhy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   168
                   "Aggregate energy of incoming signals to move to CCA Busy state dB of Phy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   169
                   DoubleValue (10),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   170
                   MakeDoubleAccessor (&UanPhyDual::GetCcaThresholdPhy2, &UanPhyDual::SetCcaThresholdPhy2),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   171
                   MakeDoubleChecker<double> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   172
    .AddAttribute ("TxPowerPhy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   173
                   "Transmission output power in dB of Phy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   174
                   DoubleValue (190),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   175
                   MakeDoubleAccessor (&UanPhyDual::GetTxPowerDbPhy1, &UanPhyDual::SetTxPowerDbPhy1),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   176
                   MakeDoubleChecker<double> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   177
    .AddAttribute ("TxPowerPhy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   178
                   "Transmission output power in dB of Phy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   179
                   DoubleValue (190),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   180
                   MakeDoubleAccessor (&UanPhyDual::GetTxPowerDbPhy2, &UanPhyDual::SetTxPowerDbPhy2),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   181
                   MakeDoubleChecker<double> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   182
    .AddAttribute ("RxGainPhy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   183
                   "Gain added to incoming signal at receiver of Phy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   184
                   DoubleValue (0),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   185
                   MakeDoubleAccessor (&UanPhyDual::GetRxGainDbPhy1, &UanPhyDual::SetRxGainDbPhy1),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   186
                   MakeDoubleChecker<double> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   187
    .AddAttribute ("RxGainPhy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   188
                   "Gain added to incoming signal at receiver of Phy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   189
                   DoubleValue (0),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   190
                   MakeDoubleAccessor (&UanPhyDual::GetRxGainDbPhy2, &UanPhyDual::SetRxGainDbPhy2),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   191
                   MakeDoubleChecker<double> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   192
    .AddAttribute ("SupportedModesPhy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   193
                   "List of modes supported by Phy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   194
                   UanModesListValue (UanPhyGen::GetDefaultModes ()),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   195
                   MakeUanModesListAccessor (&UanPhyDual::GetModesPhy1, &UanPhyDual::SetModesPhy1),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   196
                   MakeUanModesListChecker () )
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   197
    .AddAttribute ("SupportedModesPhy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   198
                   "List of modes supported by Phy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   199
                   UanModesListValue (UanPhyGen::GetDefaultModes ()),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   200
                   MakeUanModesListAccessor (&UanPhyDual::GetModesPhy2, &UanPhyDual::SetModesPhy2),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   201
                   MakeUanModesListChecker () )
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   202
    .AddAttribute ("PerModelPhy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   203
                   "Functor to calculate PER based on SINR and TxMode for Phy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   204
                   PointerValue (CreateObject<UanPhyPerGenDefault> ()),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   205
                   MakePointerAccessor (&UanPhyDual::GetPerModelPhy1, &UanPhyDual::SetPerModelPhy1),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   206
                   MakePointerChecker<UanPhyPer> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   207
    .AddAttribute ("PerModelPhy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   208
                   "Functor to calculate PER based on SINR and TxMode for Phy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   209
                   PointerValue (CreateObject<UanPhyPerGenDefault> ()),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   210
                   MakePointerAccessor (&UanPhyDual::GetPerModelPhy2, &UanPhyDual::SetPerModelPhy2),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   211
                   MakePointerChecker<UanPhyPer> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   212
    .AddAttribute ("SinrModelPhy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   213
                   "Functor to calculate SINR based on pkt arrivals and modes for Phy1",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   214
                   PointerValue (CreateObject<UanPhyCalcSinrDual> ()),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   215
                   MakePointerAccessor (&UanPhyDual::GetSinrModelPhy1, &UanPhyDual::SetSinrModelPhy1),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   216
                   MakePointerChecker<UanPhyCalcSinr> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   217
    .AddAttribute ("SinrModelPhy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   218
                   "Functor to calculate SINR based on pkt arrivals and modes for Phy2",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   219
                   PointerValue (CreateObject<UanPhyCalcSinrDual> ()),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   220
                   MakePointerAccessor (&UanPhyDual::GetSinrModelPhy2, &UanPhyDual::SetSinrModelPhy2),
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   221
                   MakePointerChecker<UanPhyCalcSinr> ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   222
    .AddTraceSource ("RxOk",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   223
                     "A packet was received successfully",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   224
                     MakeTraceSourceAccessor (&UanPhyDual::m_rxOkLogger))
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   225
    .AddTraceSource ("RxError",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   226
                     "A packet was received unsuccessfully",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   227
                     MakeTraceSourceAccessor (&UanPhyDual::m_rxErrLogger))
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   228
    .AddTraceSource ("Tx",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   229
                     "Packet transmission beginning",
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   230
                     MakeTraceSourceAccessor (&UanPhyDual::m_txLogger))
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   231
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   232
  ;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   233
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   234
  return tid;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   235
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   236
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   237
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   238
UanPhyDual::SendPacket (Ptr<Packet> pkt, uint32_t modeNum)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   239
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   240
  if (modeNum <= m_phy1->GetNModes () - 1)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   241
    {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   242
      NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Sending packet on Phy1 with mode number " << modeNum);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   243
      m_txLogger (pkt, m_phy1->GetTxPowerDb (), m_phy1->GetMode (modeNum));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   244
      m_phy1->SendPacket (pkt, modeNum);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   245
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   246
    }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   247
  else
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   248
    {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   249
      NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Sending packet on Phy2 with mode number " << modeNum - m_phy1->GetNModes ());
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   250
      m_txLogger (pkt, m_phy2->GetTxPowerDb (), m_phy2->GetMode (modeNum - m_phy1->GetNModes ()));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   251
      m_phy2->SendPacket (pkt, modeNum - m_phy1->GetNModes ());
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   252
    }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   253
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   254
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   255
UanPhyDual::RegisterListener (UanPhyListener *listener)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   256
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   257
  m_phy1->RegisterListener (listener);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   258
  m_phy2->RegisterListener (listener);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   259
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   260
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   261
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   262
UanPhyDual::StartRxPacket (Ptr<Packet> pkt, double rxPowerDb, UanTxMode txMode, UanPdp pdp)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   263
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   264
  // Not called.  StartRxPacket in m_phy1 and m_phy2 are called directly from Transducer.
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   265
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   266
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   267
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   268
UanPhyDual::SetReceiveOkCallback (RxOkCallback cb)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   269
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   270
  m_phy1->SetReceiveOkCallback (cb);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   271
  m_phy2->SetReceiveOkCallback (cb);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   272
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   273
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   274
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   275
UanPhyDual::SetReceiveErrorCallback (RxErrCallback cb)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   276
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   277
  m_phy1->SetReceiveErrorCallback (cb);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   278
  m_phy2->SetReceiveErrorCallback (cb);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   279
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   280
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   281
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   282
UanPhyDual::SetRxGainDb (double gain)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   283
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   284
  m_phy1->SetRxGainDb (gain);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   285
  m_phy2->SetRxGainDb (gain);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   286
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   287
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   288
UanPhyDual::SetRxGainDbPhy1 (double gain)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   289
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   290
  m_phy1->SetRxGainDb (gain);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   291
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   292
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   293
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   294
UanPhyDual::SetRxGainDbPhy2 (double gain)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   295
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   296
  m_phy2->SetRxGainDb (gain);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   297
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   298
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   299
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   300
UanPhyDual::SetTxPowerDb (double txpwr)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   301
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   302
  m_phy1->SetTxPowerDb (txpwr);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   303
  m_phy2->SetTxPowerDb (txpwr);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   304
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   305
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   306
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   307
UanPhyDual::SetTxPowerDbPhy1 (double txpwr)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   308
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   309
  m_phy1->SetTxPowerDb (txpwr);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   310
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   311
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   312
UanPhyDual::SetTxPowerDbPhy2 (double txpwr)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   313
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   314
  m_phy2->SetTxPowerDb (txpwr);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   315
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   316
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   317
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   318
UanPhyDual::SetRxThresholdDb (double thresh)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   319
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   320
  NS_LOG_WARN ("SetRxThresholdDb is deprecated and has no effect.  Look at PER Functor attribute");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   321
  m_phy1->SetRxThresholdDb (thresh);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   322
  m_phy2->SetRxThresholdDb (thresh);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   323
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   324
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   325
UanPhyDual::SetCcaThresholdDb (double thresh)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   326
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   327
  m_phy1->SetCcaThresholdDb (thresh);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   328
  m_phy2->SetCcaThresholdDb (thresh);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   329
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   330
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   331
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   332
UanPhyDual::SetCcaThresholdPhy1 (double thresh)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   333
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   334
  m_phy1->SetCcaThresholdDb (thresh);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   335
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   336
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   337
UanPhyDual::SetCcaThresholdPhy2 (double thresh)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   338
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   339
  m_phy2->SetCcaThresholdDb (thresh);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   340
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   341
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   342
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   343
UanPhyDual::GetRxGainDb (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   344
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   345
  NS_LOG_WARN ("Warning: UanPhyDual::GetRxGainDb returns RxGain of Phy 1");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   346
  return m_phy1->GetRxGainDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   347
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   348
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   349
UanPhyDual::GetRxGainDbPhy1 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   350
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   351
  return m_phy1->GetRxGainDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   352
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   353
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   354
UanPhyDual::GetRxGainDbPhy2 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   355
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   356
  return m_phy2->GetRxGainDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   357
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   358
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   359
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   360
UanPhyDual::GetTxPowerDb (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   361
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   362
  NS_LOG_WARN ("Warning: Dual Phy only returns TxPowerDb of Phy 1");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   363
  return m_phy1->GetTxPowerDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   364
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   365
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   366
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   367
UanPhyDual::GetTxPowerDbPhy1 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   368
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   369
  return m_phy1->GetTxPowerDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   370
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   371
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   372
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   373
UanPhyDual::GetTxPowerDbPhy2 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   374
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   375
  return m_phy2->GetTxPowerDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   376
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   377
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   378
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   379
UanPhyDual::GetRxThresholdDb (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   380
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   381
  return m_phy1->GetRxThresholdDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   382
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   383
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   384
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   385
UanPhyDual::GetCcaThresholdDb (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   386
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   387
  NS_LOG_WARN ("Dual Phy only returns CCAThreshold of Phy 1");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   388
  return m_phy1->GetCcaThresholdDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   389
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   390
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   391
UanPhyDual::GetCcaThresholdPhy1 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   392
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   393
  return m_phy1->GetCcaThresholdDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   394
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   395
double
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   396
UanPhyDual::GetCcaThresholdPhy2 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   397
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   398
  return m_phy2->GetCcaThresholdDb ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   399
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   400
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   401
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   402
UanPhyDual::IsPhy1Idle (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   403
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   404
  return m_phy1->IsStateIdle ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   405
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   406
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   407
UanPhyDual::IsPhy2Idle (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   408
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   409
  return m_phy2->IsStateIdle ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   410
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   411
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   412
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   413
UanPhyDual::IsPhy1Rx (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   414
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   415
  return m_phy1->IsStateRx ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   416
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   417
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   418
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   419
UanPhyDual::IsPhy2Rx (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   420
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   421
  return m_phy2->IsStateRx ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   422
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   423
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   424
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   425
UanPhyDual::IsPhy1Tx (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   426
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   427
  return m_phy1->IsStateTx ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   428
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   429
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   430
Ptr<Packet>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   431
UanPhyDual::GetPhy1PacketRx (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   432
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   433
  return m_phy1->GetPacketRx ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   434
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   435
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   436
Ptr<Packet>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   437
UanPhyDual::GetPhy2PacketRx (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   438
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   439
  return m_phy2->GetPacketRx ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   440
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   441
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   442
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   443
UanPhyDual::IsPhy2Tx (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   444
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   445
  return m_phy2->IsStateTx ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   446
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   447
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   448
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   449
UanPhyDual::IsStateIdle (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   450
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   451
  return m_phy1->IsStateIdle () && m_phy2->IsStateIdle ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   452
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   453
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   454
UanPhyDual::IsStateBusy (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   455
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   456
  return !IsStateIdle ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   457
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   458
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   459
UanPhyDual::IsStateRx (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   460
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   461
  return m_phy1->IsStateRx () || m_phy2->IsStateRx ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   462
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   463
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   464
UanPhyDual::IsStateTx (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   465
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   466
  return m_phy1->IsStateTx () || m_phy2->IsStateTx ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   467
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   468
bool
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   469
UanPhyDual::IsStateCcaBusy (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   470
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   471
  return m_phy1->IsStateCcaBusy () || m_phy2->IsStateCcaBusy ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   472
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   473
Ptr<UanChannel>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   474
UanPhyDual::GetChannel (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   475
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   476
  return m_phy1->GetChannel ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   477
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   478
Ptr<UanNetDevice>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   479
UanPhyDual::GetDevice (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   480
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   481
  return m_phy1->GetDevice ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   482
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   483
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   484
UanPhyDual::SetChannel (Ptr<UanChannel> channel)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   485
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   486
  m_phy1->SetChannel (channel);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   487
  m_phy2->SetChannel (channel);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   488
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   489
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   490
UanPhyDual::SetDevice (Ptr<UanNetDevice> device)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   491
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   492
  m_phy1->SetDevice (device);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   493
  m_phy2->SetDevice (device);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   494
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   495
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   496
UanPhyDual::SetMac (Ptr<UanMac> mac)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   497
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   498
  m_phy1->SetMac (mac);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   499
  m_phy2->SetMac (mac);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   500
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   501
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   502
UanPhyDual::NotifyTransStartTx (Ptr<Packet> packet, double txPowerDb, UanTxMode txMode)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   503
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   504
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   505
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   506
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   507
UanPhyDual::NotifyIntChange (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   508
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   509
  m_phy1->NotifyIntChange ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   510
  m_phy2->NotifyIntChange ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   511
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   512
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   513
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   514
UanPhyDual::SetTransducer (Ptr<UanTransducer> trans)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   515
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   516
  m_phy1->SetTransducer (trans);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   517
  m_phy2->SetTransducer (trans);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   518
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   519
Ptr<UanTransducer>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   520
UanPhyDual::GetTransducer (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   521
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   522
  NS_LOG_WARN ("DualPhy Returning transducer of Phy1");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   523
  return m_phy1->GetTransducer ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   524
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   525
uint32_t
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   526
UanPhyDual::GetNModes (void)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   527
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   528
  return m_phy1->GetNModes () + m_phy2->GetNModes ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   529
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   530
UanTxMode
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   531
UanPhyDual::GetMode (uint32_t n)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   532
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   533
  if (n < m_phy1->GetNModes ())
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   534
    {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   535
      return m_phy1->GetMode (n);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   536
    }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   537
  else
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   538
    {
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   539
      return m_phy2->GetMode (n - m_phy1->GetNModes ());
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   540
    }
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   541
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   542
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   543
UanModesList
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   544
UanPhyDual::GetModesPhy1 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   545
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   546
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   547
  UanModesListValue modeValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   548
  m_phy1->GetAttribute ("SupportedModes", modeValue);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   549
  return modeValue.Get ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   550
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   551
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   552
UanModesList
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   553
UanPhyDual::GetModesPhy2 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   554
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   555
  UanModesListValue modeValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   556
  m_phy2->GetAttribute ("SupportedModes", modeValue);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   557
  return modeValue.Get ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   558
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   559
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   560
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   561
UanPhyDual::SetModesPhy1 (UanModesList modes)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   562
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   563
  m_phy1->SetAttribute ("SupportedModes", UanModesListValue (modes));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   564
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   565
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   566
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   567
UanPhyDual::SetModesPhy2 (UanModesList modes)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   568
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   569
  m_phy2->SetAttribute ("SupportedModes", UanModesListValue (modes));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   570
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   571
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   572
Ptr<UanPhyPer>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   573
UanPhyDual::GetPerModelPhy1 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   574
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   575
  PointerValue perValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   576
  m_phy1->GetAttribute ("PerModel", perValue);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   577
  return perValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   578
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   579
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   580
Ptr<UanPhyPer>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   581
UanPhyDual::GetPerModelPhy2 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   582
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   583
  PointerValue perValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   584
  m_phy2->GetAttribute ("PerModel", perValue);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   585
  return perValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   586
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   587
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   588
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   589
UanPhyDual::SetPerModelPhy1 (Ptr<UanPhyPer> per)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   590
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   591
  m_phy1->SetAttribute ("PerModel", PointerValue (per));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   592
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   593
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   594
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   595
UanPhyDual::SetPerModelPhy2 (Ptr<UanPhyPer> per)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   596
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   597
  m_phy2->SetAttribute ("PerModel", PointerValue (per));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   598
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   599
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   600
Ptr<UanPhyCalcSinr>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   601
UanPhyDual::GetSinrModelPhy1 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   602
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   603
  PointerValue sinrValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   604
  m_phy1->GetAttribute ("SinrModel", sinrValue);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   605
  return sinrValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   606
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   607
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   608
Ptr<UanPhyCalcSinr>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   609
UanPhyDual::GetSinrModelPhy2 (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   610
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   611
  PointerValue sinrValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   612
  m_phy2->GetAttribute ("SinrModel", sinrValue);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   613
  return sinrValue;
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   614
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   615
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   616
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   617
UanPhyDual::SetSinrModelPhy1 (Ptr<UanPhyCalcSinr> sinr)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   618
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   619
  m_phy1->SetAttribute ("SinrModel", PointerValue (sinr));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   620
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   621
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   622
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   623
UanPhyDual::SetSinrModelPhy2 (Ptr<UanPhyCalcSinr> sinr)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   624
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   625
  m_phy2->SetAttribute ("SinrModel", PointerValue (sinr));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   626
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   627
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   628
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   629
UanPhyDual::RxOkFromSubPhy (Ptr<Packet> pkt, double sinr, UanTxMode mode)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   630
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   631
  NS_LOG_DEBUG (Simulator::Now ().GetSeconds () << " Received packet");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   632
  m_recOkCb (pkt, sinr, mode);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   633
  m_rxOkLogger (pkt, sinr, mode);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   634
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   635
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   636
void
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   637
UanPhyDual::RxErrFromSubPhy (Ptr<Packet> pkt, double sinr)
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   638
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   639
  m_recErrCb (pkt, sinr);
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   640
  m_rxErrLogger (pkt, sinr, m_phy1->GetMode (0));
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   641
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   642
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   643
Ptr<Packet>
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   644
UanPhyDual::GetPacketRx (void) const
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   645
{
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   646
  NS_FATAL_ERROR ("GetPacketRx not valid for UanPhyDual.  Must specify GetPhy1PacketRx or GetPhy2PacketRx");
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   647
  return Create<Packet> ();
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   648
}
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   649
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   650
} // namespace uan
66d4eab148ce Added UAN package
Mitch Watrous <watrous@u.washington.edu>
parents:
diff changeset
   651
} // namespace ns3