|
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 |
m_reportEvent.Cancel (); |
66 |
SpectrumPhy::DoDispose (); |
67 |
SpectrumPhy::DoDispose (); |
67 |
} |
68 |
} |
68 |
|
69 |
|
|
208 |
(*avgPowerSpectralDensity) += m_noisePowerSpectralDensity; |
209 |
(*avgPowerSpectralDensity) += m_noisePowerSpectralDensity; |
209 |
(*m_energySpectralDensity) = 0; |
210 |
(*m_energySpectralDensity) = 0; |
210 |
|
211 |
|
|
|
212 |
m_reportEvent = Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this); |
213 |
|
211 |
NS_LOG_INFO ("generating report"); |
214 |
NS_LOG_INFO ("generating report"); |
212 |
m_averagePowerSpectralDensityReportTrace (avgPowerSpectralDensity); |
215 |
m_averagePowerSpectralDensityReportTrace (avgPowerSpectralDensity); |
213 |
|
216 |
|
214 |
*avgPowerSpectralDensity = 0; |
217 |
*avgPowerSpectralDensity = 0; |
215 |
|
|
|
216 |
if (m_active) |
217 |
{ |
218 |
Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this); |
219 |
} |
220 |
} |
218 |
} |
221 |
|
219 |
|
222 |
|
220 |
|
|
239 |
SpectrumAnalyzer::Start () |
237 |
SpectrumAnalyzer::Start () |
240 |
{ |
238 |
{ |
241 |
NS_LOG_FUNCTION (this); |
239 |
NS_LOG_FUNCTION (this); |
242 |
if (!m_active) |
240 |
if (!m_reportEvent.IsRunning ()) |
243 |
{ |
241 |
{ |
244 |
NS_LOG_LOGIC ("activating"); |
242 |
m_reportEvent = Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this); |
245 |
m_active = true; |
|
|
246 |
Simulator::Schedule (m_resolution, &SpectrumAnalyzer::GenerateReport, this); |
247 |
} |
243 |
} |
248 |
} |
244 |
} |
249 |
|
245 |
|
|
251 |
void |
247 |
void |
252 |
SpectrumAnalyzer::Stop () |
248 |
SpectrumAnalyzer::Stop () |
253 |
{ |
249 |
{ |
254 |
m_active = false; |
250 |
m_reportEvent.Cancel (); |
255 |
} |
251 |
} |
256 |
|
252 |
|
257 |
} // namespace ns3 |
253 |
} // namespace ns3 |