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

(-)a/src/spectrum/model/spectrum-analyzer.cc (-11 / +7 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
  m_reportEvent.Cancel ();
66
  SpectrumPhy::DoDispose ();
67
  SpectrumPhy::DoDispose ();
67
}
68
}
68
69
 Lines 208-222    Link Here 
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
 Lines 239-249    Link Here 
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
 Lines 251-257    Link Here 
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
(-)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