21 #ifndef YANS_WIFI_PHY_H
22 #define YANS_WIFI_PHY_H
25 #include "ns3/callback.h"
26 #include "ns3/event-id.h"
27 #include "ns3/packet.h"
28 #include "ns3/object.h"
29 #include "ns3/traced-callback.h"
30 #include "ns3/nstime.h"
32 #include "ns3/random-variable-stream.h"
34 #include "wifi-mode.h"
35 #include "wifi-preamble.h"
36 #include "wifi-phy-standard.h"
37 #include "interference-helper.h"
42 class YansWifiChannel;
43 class WifiPhyStateHelper;
64 static TypeId GetTypeId (
void);
106 void SetRxNoiseFigure (
double noiseFigureDb);
107 void SetTxPowerStart (
double start);
108 void SetTxPowerEnd (
double end);
109 void SetNTxPower (uint32_t n);
110 void SetTxGain (
double gain);
111 void SetRxGain (
double gain);
112 void SetEdThreshold (
double threshold);
113 void SetCcaMode1Threshold (
double threshold);
117 double GetRxNoiseFigure (
void)
const;
118 double GetTxGain (
void)
const;
119 double GetRxGain (
void)
const;
120 double GetEdThreshold (
void)
const;
121 double GetCcaMode1Threshold (
void)
const;
125 Time GetSwitchingDelay(
void);
130 virtual double GetTxPowerStart (
void)
const;
131 virtual double GetTxPowerEnd (
void)
const;
148 virtual Time GetLastRxStartTime (
void)
const;
168 void Configure80211a (
void);
169 void Configure80211b (
void);
170 void Configure80211g (
void);
171 void Configure80211_10Mhz (
void);
172 void Configure80211_5Mhz ();
173 void ConfigureHolland (
void);
174 void Configure80211p_CCH (
void);
175 void Configure80211p_SCH (
void);
176 double GetEdThresholdW (
void)
const;
177 double DbmToW (
double dbm)
const;
178 double DbToRatio (
double db)
const;
179 double WToDbm (
double w)
const;
180 double RatioToDb (
double ratio)
const;
181 double GetPowerDbm (uint8_t power)
const;
185 double m_edThresholdW;
186 double m_ccaMode1ThresholdW;
189 double m_txPowerBaseDbm;
190 double m_txPowerEndDbm;
194 uint16_t m_channelNumber;
243 Time m_channelSwitchDelay;
void StartSensing(Time duration)
Start sensing on current channel.
virtual bool IsStateBusy(void)
smart pointer class similar to boost::intrusive_ptr
virtual bool IsStateSwitching(void)
virtual bool IsStateTx(void)
handles interference calculations
virtual void RegisterListener(WifiPhyListener *listener)
uint16_t GetChannelNumber() const
Return current channel number, see SetChannelNumber()
void SetChannelNumber(uint16_t id)
Set channel number.
virtual Time GetDelayUntilIdle(void)
represent a single transmission modeA WifiMode is implemented by a single integer which is used to lo...
virtual Time GetStateDuration(void)
virtual void SendPacket(Ptr< const Packet > packet, WifiMode mode, enum WifiPreamble preamble, uint8_t txPowerLevel)
virtual bool IsStateSensing(void)
virtual void SetHandoffEndedCallback(WifiPhy::HandoffEndedCallback callback)
virtual void SetReceiveErrorCallback(WifiPhy::RxErrorCallback callback)
virtual uint32_t GetNModes(void) const
virtual bool IsStateRx(void)
virtual WifiMode GetMode(uint32_t mode) const
double m_channelStartingFrequency
Standard-dependent center frequency of 0-th channel, MHz.
receive notifications about phy events.
WifiModeList m_deviceRateSet
virtual void DoDispose(void)
double GetChannelFrequencyMhz() const
Return current center channel frequency in MHz, see SetChannelNumber()
virtual bool IsStateCcaBusy(void)
virtual void SetReceiveOkCallback(WifiPhy::RxOkCallback callback)
int64_t AssignStreams(int64_t stream)
802.11 PHY layer modelThis PHY implements a model of 802.11a. The model implemented here is based on ...
virtual void SetSenseEndedCallback(WifiPhy::SnsEndedCallback callback)
std::vector< WifiMode > WifiModeList
virtual bool IsStateIdle(void)
virtual double CalculateSnr(WifiMode txMode, double ber) const
Ptr< UniformRandomVariable > m_random
Provides uniform random variables.
an identifier for simulation events.
a unique identifier for an interface.
virtual uint32_t GetNTxPower(void) const