27#include "ns3/singleton.h"
35NS_LOG_COMPONENT_DEFINE(
"SatFadingInputTraceContainer");
45 static TypeId tid = TypeId(
"ns3::SatFadingInputTraceContainer")
47 .AddConstructor<SatFadingInputTraceContainer>();
53 NS_LOG_FUNCTION(
this);
58 NS_LOG_FUNCTION(
this);
66 NS_LOG_FUNCTION(
this);
70 SatBaseTraceContainer::DoDispose();
76 NS_LOG_FUNCTION(
this);
84Ptr<SatInputFileStreamTimeDoubleContainer>
87 NS_LOG_FUNCTION(
this);
89 std::stringstream filename;
92 int32_t gwId = Singleton<SatIdMapper>::Get()->GetGwIdWithMac(key.first);
93 int32_t utId = Singleton<SatIdMapper>::Get()->GetUtIdWithMac(key.first);
94 int32_t beamId = Singleton<SatIdMapper>::Get()->GetBeamIdWithMac(key.first);
96 if (beamId < 0 || (utId < 0 && gwId < 0))
99 "SatFadingInputTraceContainer::AddNode - No such MAC address in the trace ID mapper");
103 if (utId >= 0 && gwId < 0)
105 filename << dataPath <<
"/additional-input/fadingtraces/input/BEAM_" << beamId <<
"_UT_"
109 if (gwId >= 0 && utId < 0)
111 filename << dataPath <<
"/additional-input/fadingtraces/input/BEAM_" << beamId <<
"_GW_"
114 std::pair<container_t::iterator, bool> result =
m_container.insert(
116 CreateObject<SatInputFileStreamTimeDoubleContainer>(
117 filename.str().c_str(),
121 if (result.second ==
false)
123 NS_FATAL_ERROR(
"SatFadingInputTraceContainer::AddNode failed");
126 NS_LOG_INFO(
"Added node with MAC " << key.first <<
" channel type " << key.second);
128 return result.first->second;
131 NS_FATAL_ERROR(
"SatFadingInputTraceContainer::AddNode failed");
135Ptr<SatInputFileStreamTimeDoubleContainer>
138 NS_LOG_FUNCTION(
this);
140 container_t::iterator iter =
m_container.find(key);
153 NS_LOG_FUNCTION(
this);
155 return FindNode(key)->ProceedToNextClosestTimeSample().at(
static const uint32_t FADING_TRACE_DEFAULT_NUMBER_OF_COLUMNS
Default number of columns for fading traces.
static const uint32_t FADING_TRACE_DEFAULT_FADING_VALUE_INDEX
Default fading value index for fading traces.
SatBaseTraceContainer()
Constructor.
static std::string GetChannelTypeName(ChannelType_t channelType)
static Ptr< SatEnvVariables > GetInstance()
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.