View | Details | Raw Unified | Return to bug 2475
Collapse All | Expand All

(-)a/src/spectrum/model/spectrum-analyzer.cc (-11 / +10 lines)
 Lines 41-47    Link Here 
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
}
 Lines 63-68    Link Here 
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
 Lines 208-222    Link Here 
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
 Lines 239-249    Link Here 
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
 Lines 251-257    Link Here 
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
(-)a/src/spectrum/model/spectrum-analyzer.h (-1 / +1 lines)
 Lines 131-137    Link Here 
131
  double m_noisePowerSpectralDensity;             //!< Noise power spectral density
131
  double m_noisePowerSpectralDensity;             //!< Noise power spectral density
132
  Time m_resolution;                              //!< Time resolution
132
  Time m_resolution;                              //!< Time resolution
133
  Time m_lastChangeTime;                          //!< When the last update happened
133
  Time m_lastChangeTime;                          //!< When the last update happened
134
  bool m_active;                                  //!< True if the analyzer is active
134
  EventId m_reportEvent;                          //!< Report event
135
135
136
  /// TracedCallback - average power spectral density report.
136
  /// TracedCallback - average power spectral density report.
137
  TracedCallback<Ptr<const SpectrumValue> > m_averagePowerSpectralDensityReportTrace;
137
  TracedCallback<Ptr<const SpectrumValue> > m_averagePowerSpectralDensityReportTrace;

Return to bug 2475