|
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 |