67 }; |
67 }; |
68 |
68 |
69 InterferenceHelper (); |
69 InterferenceHelper (); |
70 ~InterferenceHelper (); |
70 ~InterferenceHelper (); |
71 |
71 |
72 void Configure80211aParameters (void); |
|
73 void Configure80211bParameters (void); |
|
74 void Configure80211_10MhzParameters (void); |
|
75 void Configure80211_5MhzParameters (void); |
|
76 void SetNoiseFigure (double value); |
72 void SetNoiseFigure (double value); |
77 void SetErrorRateModel (Ptr<ErrorRateModel> rate); |
73 void SetErrorRateModel (Ptr<ErrorRateModel> rate); |
78 |
74 |
79 double GetNoiseFigure (void) const; |
75 double GetNoiseFigure (void) const; |
80 Ptr<ErrorRateModel> GetErrorRateModel (void) const; |
76 Ptr<ErrorRateModel> GetErrorRateModel (void) const; |
85 * \returns the expected amount of time the observed |
81 * \returns the expected amount of time the observed |
86 * energy on the medium will be higher than |
82 * energy on the medium will be higher than |
87 * the requested threshold. |
83 * the requested threshold. |
88 */ |
84 */ |
89 Time GetEnergyDuration (double energyW); |
85 Time GetEnergyDuration (double energyW); |
90 Time CalculateTxDuration (uint32_t size, WifiMode payloadMode, WifiPreamble preamble) const; |
86 |
|
87 |
|
88 static WifiMode GetPlcpHeaderMode (WifiMode payloadMode, WifiPreamble preamble); |
|
89 static uint32_t GetPlcpHeaderDurationMicroSeconds (WifiMode payloadMode, WifiPreamble preamble); |
|
90 static uint32_t GetPlcpPreambleDurationMicroSeconds (WifiMode mode, WifiPreamble preamble); |
|
91 static uint32_t GetPayloadDurationMicroSeconds (uint32_t size, WifiMode payloadMode); |
|
92 static Time CalculateTxDuration (uint32_t size, WifiMode payloadMode, WifiPreamble preamble); |
91 Ptr<InterferenceHelper::Event> Add (uint32_t size, WifiMode payloadMode, |
93 Ptr<InterferenceHelper::Event> Add (uint32_t size, WifiMode payloadMode, |
92 enum WifiPreamble preamble, |
94 enum WifiPreamble preamble, |
93 Time duration, double rxPower); |
95 Time duration, double rxPower); |
94 |
96 |
95 struct InterferenceHelper::SnrPer CalculateSnrPer (Ptr<InterferenceHelper::Event> event); |
97 struct InterferenceHelper::SnrPer CalculateSnrPer (Ptr<InterferenceHelper::Event> event); |
114 double CalculateSnr (double signal, double noiseInterference, WifiMode mode) const; |
116 double CalculateSnr (double signal, double noiseInterference, WifiMode mode) const; |
115 double CalculateChunkSuccessRate (double snir, Time delay, WifiMode mode) const; |
117 double CalculateChunkSuccessRate (double snir, Time delay, WifiMode mode) const; |
116 double CalculatePer (Ptr<const Event> event, NiChanges *ni) const; |
118 double CalculatePer (Ptr<const Event> event, NiChanges *ni) const; |
117 Time GetMaxPacketDuration (void) const; |
119 Time GetMaxPacketDuration (void) const; |
118 |
120 |
119 uint64_t m_plcpLongPreambleDelayUs; |
|
120 uint64_t m_plcpShortPreambleDelayUs; |
|
121 WifiMode m_longPlcpHeaderMode; |
|
122 WifiMode m_shortPlcpHeaderMode; |
|
123 uint32_t m_plcpHeaderLength; |
|
124 Time m_maxPacketDuration; |
121 Time m_maxPacketDuration; |
125 double m_noiseFigure; /**< noise figure (linear) */ |
122 double m_noiseFigure; /**< noise figure (linear) */ |
126 Events m_events; |
123 Events m_events; |
127 enum WifiPhyStandard m_80211_standard; |
|
128 Ptr<ErrorRateModel> m_errorRateModel; |
124 Ptr<ErrorRateModel> m_errorRateModel; |
129 }; |
125 }; |
130 |
126 |
131 } // namespace ns3 |
127 } // namespace ns3 |
132 |
128 |