|
|
| 41 |
m_spectrumModel (0), |
41 |
m_spectrumModel (0), |
| 42 |
m_sumPowerSpectralDensity (0), |
42 |
m_sumPowerSpectralDensity (0), |
| 43 |
m_resolution (MilliSeconds (50)), |
43 |
m_resolution (MilliSeconds (50)), |
| 44 |
m_active (false) |
44 |
m_reportEvent () |
| 45 |
{ |
45 |
{ |
| 46 |
NS_LOG_FUNCTION (this); |
46 |
NS_LOG_FUNCTION (this); |
| 47 |
} |
47 |
} |
|
|
| 63 |
m_spectrumModel = 0; |
63 |
m_spectrumModel = 0; |
| 64 |
m_sumPowerSpectralDensity = 0; |
64 |
m_sumPowerSpectralDensity = 0; |
| 65 |
m_energySpectralDensity = 0; |
65 |
m_energySpectralDensity = 0; |
|
|
66 |
if (m_reportEvent.IsRunning ()) |
| 67 |
{ |
| 68 |
m_reportEvent.Cancel (); |
| 69 |
} |
| 66 |
SpectrumPhy::DoDispose (); |
70 |
SpectrumPhy::DoDispose (); |
| 67 |
} |
71 |
} |
| 68 |
|
72 |
|
|
|
| 208 |
(*avgPowerSpectralDensity) += m_noisePowerSpectralDensity; |
212 |
(*avgPowerSpectralDensity) += m_noisePowerSpectralDensity; |
| 209 |
(*m_energySpectralDensity) = 0; |
213 |
(*m_energySpectralDensity) = 0; |
| 210 |
|
214 |
|
|
|
215 |
m_reportEvent = Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this); |
| 216 |
|
| 211 |
NS_LOG_INFO ("generating report"); |
217 |
NS_LOG_INFO ("generating report"); |
| 212 |
m_averagePowerSpectralDensityReportTrace (avgPowerSpectralDensity); |
218 |
m_averagePowerSpectralDensityReportTrace (avgPowerSpectralDensity); |
| 213 |
|
219 |
|
| 214 |
*avgPowerSpectralDensity = 0; |
220 |
*avgPowerSpectralDensity = 0; |
| 215 |
|
|
|
| 216 |
if (m_active) |
| 217 |
{ |
| 218 |
Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this); |
| 219 |
} |
| 220 |
} |
221 |
} |
| 221 |
|
222 |
|
| 222 |
|
223 |
|
|
|
| 239 |
SpectrumAnalyzer::Start () |
240 |
SpectrumAnalyzer::Start () |
| 240 |
{ |
241 |
{ |
| 241 |
NS_LOG_FUNCTION (this); |
242 |
NS_LOG_FUNCTION (this); |
| 242 |
if (!m_active) |
243 |
if (!m_reportEvent.IsRunning ()) |
| 243 |
{ |
244 |
{ |
| 244 |
NS_LOG_LOGIC ("activating"); |
245 |
m_reportEvent = Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this); |
| 245 |
m_active = true; |
|
|
| 246 |
Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this); |
| 247 |
} |
246 |
} |
| 248 |
} |
247 |
} |
| 249 |
|
248 |
|
|
|
| 251 |
void |
250 |
void |
| 252 |
SpectrumAnalyzer::Stop () |
251 |
SpectrumAnalyzer::Stop () |
| 253 |
{ |
252 |
{ |
| 254 |
m_active = false; |
253 |
m_reportEvent.Cancel (); |
| 255 |
} |
254 |
} |
| 256 |
|
255 |
|
| 257 |
} // namespace ns3 |
256 |
} // namespace ns3 |