diff --git a/src/spectrum/examples/adhoc-aloha-ideal-phy-with-microwave-oven.cc b/src/spectrum/examples/adhoc-aloha-ideal-phy-with-microwave-oven.cc index aba1f2590..d1d7a4546 100644 --- a/src/spectrum/examples/adhoc-aloha-ideal-phy-with-microwave-oven.cc +++ b/src/spectrum/examples/adhoc-aloha-ideal-phy-with-microwave-oven.cc @@ -255,7 +255,7 @@ main(int argc, char** argv) SpectrumAnalyzerHelper spectrumAnalyzerHelper; spectrumAnalyzerHelper.SetChannel(channel); - spectrumAnalyzerHelper.SetRxSpectrumModel(SpectrumModelIsm2400MhzRes1Mhz); + spectrumAnalyzerHelper.SetRxSpectrumModel(SpectrumModelIsm2400MhzRes1Mhz()); spectrumAnalyzerHelper.SetPhyAttribute("Resolution", TimeValue(MilliSeconds(2))); spectrumAnalyzerHelper.SetPhyAttribute("NoisePowerSpectralDensity", DoubleValue(1e-15)); // -120 dBm/Hz diff --git a/src/spectrum/model/spectrum-model-300kHz-300GHz-log.cc b/src/spectrum/model/spectrum-model-300kHz-300GHz-log.cc index 1b44e96cc..00f24234a 100644 --- a/src/spectrum/model/spectrum-model-300kHz-300GHz-log.cc +++ b/src/spectrum/model/spectrum-model-300kHz-300GHz-log.cc @@ -13,35 +13,18 @@ namespace ns3 /** * @ingroup spectrum - * Spectrum model logger for frequencies between 300 Khz 300 Ghz + * Spectrum model logger for frequencies between 300 KHz 300 GHz */ -Ptr SpectrumModel300Khz300GhzLog; - -/** - * @ingroup spectrum - * - * Static initializer class for Spectrum model logger - * for frequencies between 300 Khz 300 Ghz - */ -class static_SpectrumModel300Khz300GhzLog_initializer +Ptr +SpectrumModel300Khz300GhzLog() { - public: - static_SpectrumModel300Khz300GhzLog_initializer() + std::vector freqs; + for (double f = 3e5; f < 3e11; f = f * 2) { - std::vector freqs; - for (double f = 3e5; f < 3e11; f = f * 2) - { - freqs.push_back(f); - } - SpectrumModel300Khz300GhzLog = Create(freqs); + freqs.push_back(f); } -}; - -/** - * @ingroup spectrum - * Static variable for analyzer initialization - */ -static_SpectrumModel300Khz300GhzLog_initializer - g_static_SpectrumModel300Khz300GhzLog_initializer_instance; + static Ptr model = Create(freqs); + return model; +} } // namespace ns3 diff --git a/src/spectrum/model/spectrum-model-300kHz-300GHz-log.h b/src/spectrum/model/spectrum-model-300kHz-300GHz-log.h index ba55982b7..507ee4143 100644 --- a/src/spectrum/model/spectrum-model-300kHz-300GHz-log.h +++ b/src/spectrum/model/spectrum-model-300kHz-300GHz-log.h @@ -14,8 +14,12 @@ namespace ns3 { -extern Ptr SpectrumModel300Khz300GhzLog; +/** + * @brief Spectrum model logger for frequencies between 300 KHz 300 GHz + * @return Spectrum model with a range of 300 KHz to 300 GHz for center frequencies + */ +Ptr SpectrumModel300Khz300GhzLog(); -} +} // namespace ns3 #endif /* FREQS_300KHZ_300GHZ_LOG_H */ diff --git a/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.cc b/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.cc index 246ad1f22..c9f3cbcb0 100644 --- a/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.cc +++ b/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.cc @@ -16,35 +16,16 @@ namespace ns3 * Spectrum model logger for frequencies in the 2.4 GHz ISM band * with 1 MHz resolution. */ -Ptr SpectrumModelIsm2400MhzRes1Mhz; - -/** - * @ingroup spectrum - * - * Static initializer class for Spectrum model logger for - * frequencies in the 2.4 GHz ISM band with 1 MHz resolution. - */ -class static_SpectrumModelIsm2400MhzRes1Mhz_initializer +Ptr +SpectrumModelIsm2400MhzRes1Mhz() { - public: - static_SpectrumModelIsm2400MhzRes1Mhz_initializer() + std::vector freqs(100); + for (int i = 0; i < 100; ++i) { - std::vector freqs; - freqs.reserve(100); - for (int i = 0; i < 100; ++i) - { - freqs.push_back((i + 2400) * 1e6); - } - - SpectrumModelIsm2400MhzRes1Mhz = Create(freqs); + freqs[i] = ((i + 2400) * 1e6); } -}; - -/** - * @ingroup spectrum - * Static variable for analyzer initialization - */ -static_SpectrumModelIsm2400MhzRes1Mhz_initializer - g_static_SpectrumModelIsm2400MhzRes1Mhz_initializer_instance; + static Ptr model = Create(freqs); + return model; +} } // namespace ns3 diff --git a/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.h b/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.h index 5fc2cbfc4..de7bd4855 100644 --- a/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.h +++ b/src/spectrum/model/spectrum-model-ism2400MHz-res1MHz.h @@ -14,8 +14,13 @@ namespace ns3 { -extern Ptr SpectrumModelIsm2400MhzRes1Mhz; +/** + * @brief Spectrum model logger for frequencies in the 2.4 GHz ISM band + * with 1 MHz resolution. + * @return Spectrum model for 2.4 GHz ISM band + */ +Ptr SpectrumModelIsm2400MhzRes1Mhz(); -} +} // namespace ns3 #endif /* FREQS_ISM2400MHZ_RES1MHZ_H */