A Discrete-Event Network Simulator
API
rem-spectrum-phy.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2012 CTTC
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: Nicola Baldo <nbaldo@cttc.es>
19  */
20 
21 #ifndef REM_SPECTRUM_PHY_H
22 #define REM_SPECTRUM_PHY_H
23 
24 
25 #include <ns3/spectrum-value.h>
26 #include <ns3/mobility-model.h>
27 #include <ns3/packet.h>
28 #include <ns3/nstime.h>
29 #include <ns3/net-device.h>
30 #include <ns3/spectrum-phy.h>
31 #include <ns3/spectrum-channel.h>
32 #include <string>
33 #include <fstream>
34 
35 namespace ns3 {
36 
37 
52 {
53 
54 public:
55  RemSpectrumPhy ();
56  virtual ~RemSpectrumPhy ();
57 
58  // inherited from Object
59  void DoDispose ();
64  static TypeId GetTypeId (void);
65 
66  // inherited from SpectrumPhy
69  void SetDevice (Ptr<NetDevice> d);
71  Ptr<NetDevice> GetDevice () const;
75 
82 
88  double GetSinr (double noisePower);
89 
94  void Deactivate ();
95 
100  bool IsActive ();
101 
106  void Reset ();
107 
113  void SetUseDataChannel (bool value);
114 
120  void SetRbId (int32_t rbId);
121 
122 private:
125 
127  double m_sumPower;
128 
129  bool m_active;
130 
132  int32_t m_rbId;
133 
134 };
135 
136 
137 
138 
139 
140 
141 }
142 
143 
144 
145 
146 
147 #endif /* REM_SPECTRUM_PHY_H */
Ptr< MobilityModel > GetMobility()
Get the associated MobilityModel instance.
double GetSinr(double noisePower)
Ptr< NetDevice > GetDevice() const
Get the associated NetDevice instance.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
Abstract base class for Spectrum-aware PHY layers.
Definition: spectrum-phy.h:45
bool m_active
is active?
void SetRxSpectrumModel(Ptr< const SpectrumModel > m)
set the RX spectrum model to be used
double m_referenceSignalPower
reference signal power
Ptr< AntennaModel > GetRxAntenna()
Get the AntennaModel used by the NetDevice for reception.
void Reset()
Reset the SINR calculator.
This minimal SpectrumPhy implementation calculates the SINR with respect to the strongest signal for ...
void Deactivate()
make StartRx a no-op from now on, and mark instance as inactive
void StartRx(Ptr< SpectrumSignalParameters > params)
Notify the SpectrumPhy instance of an incoming signal.
Ptr< const SpectrumModel > m_rxSpectrumModel
receive spectrum model
double m_sumPower
sum power
Ptr< MobilityModel > m_mobility
the mobility model
void SetChannel(Ptr< SpectrumChannel > c)
Set the channel attached to this device.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< const SpectrumModel > GetRxSpectrumModel() const
void SetUseDataChannel(bool value)
set usage of DataChannel
void SetMobility(Ptr< MobilityModel > m)
Set the mobility model associated with this device.
void SetRbId(int32_t rbId)
set RB Id
void DoDispose()
Destructor implementation.
static TypeId GetTypeId(void)
Get the type ID.
bool m_useDataChannel
use data channel
a unique identifier for an interface.
Definition: type-id.h:58
void SetDevice(Ptr< NetDevice > d)
Set the associated NetDevice instance.