24 #include "ns3/string.h"
25 #include <ns3/simulator.h>
35 : m_dlTxFirstWrite (true),
36 m_ulTxFirstWrite (true)
52 .AddConstructor<PhyTxStatsCalculator> ()
53 .AddAttribute (
"DlTxOutputFilename",
54 "Name of the file where the downlink results will be saved.",
58 .AddAttribute (
"UlTxOutputFilename",
59 "Name of the file where the uplink results will be saved.",
97 std::ofstream outFile;
101 if (!outFile.is_open ())
108 outFile <<
"% time\tcellId\tIMSI\tRNTI\tlayer\tmcs\tsize\trv\tndi";
109 outFile << std::endl;
114 if (!outFile.is_open ())
123 outFile << (uint32_t) params.
m_cellId <<
"\t";
124 outFile << params.
m_imsi <<
"\t";
125 outFile << params.
m_rnti <<
"\t";
127 outFile << (uint32_t) params.
m_layer <<
"\t";
128 outFile << (uint32_t) params.
m_mcs <<
"\t";
129 outFile << params.
m_size <<
"\t";
130 outFile << (uint32_t) params.
m_rv <<
"\t";
131 outFile << (uint32_t) params.
m_ndi << std::endl;
141 std::ofstream outFile;
145 if (!outFile.is_open ())
152 outFile <<
"% time\tcellId\tIMSI\tRNTI\tlayer\tmcs\tsize\trv\tndi";
153 outFile << std::endl;
158 if (!outFile.is_open ())
167 outFile << (uint32_t) params.
m_cellId <<
"\t";
168 outFile << params.
m_imsi <<
"\t";
169 outFile << params.
m_rnti <<
"\t";
171 outFile << (uint32_t) params.
m_layer <<
"\t";
172 outFile << (uint32_t) params.
m_mcs <<
"\t";
173 outFile << params.
m_size <<
"\t";
174 outFile << (uint32_t) params.
m_rv <<
"\t";
175 outFile << (uint32_t) params.
m_ndi << std::endl;
185 std::ostringstream pathAndRnti;
186 pathAndRnti << path <<
"/" << params.
m_rnti;
187 if (phyTxStats->ExistsImsiPath (pathAndRnti.str ()) ==
true)
189 imsi = phyTxStats->GetImsiPath (pathAndRnti.str ());
194 phyTxStats->SetImsiPath (pathAndRnti.str (), imsi);
198 phyTxStats->DlPhyTransmission (params);
207 std::ostringstream pathAndRnti;
208 pathAndRnti << path <<
"/" << params.
m_rnti;
209 if (phyTxStats->ExistsImsiPath (pathAndRnti.str ()) ==
true)
211 imsi = phyTxStats->GetImsiPath (pathAndRnti.str ());
216 phyTxStats->SetImsiPath (pathAndRnti.str (), imsi);
220 phyTxStats->UlPhyTransmission (params);
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
hold variables of type string
void SetUlOutputFilename(std::string outputFilename)
static uint64_t FindImsiForEnb(std::string path, uint16_t rnti)
NS_OBJECT_ENSURE_REGISTERED(AntennaModel)
void SetDlTxOutputFilename(std::string outputFilename)
std::string GetDlTxOutputFilename(void)
void DlPhyTransmission(PhyTransmissionStatParameters params)
std::string GetUlTxOutputFilename(void)
std::string GetUlOutputFilename(void)
static void DlPhyTransmissionCallback(Ptr< PhyTxStatsCalculator > phyTxStats, std::string path, PhyTransmissionStatParameters params)
void SetDlOutputFilename(std::string outputFilename)
static uint64_t FindImsiForUe(std::string path, uint16_t rnti)
virtual ~PhyTxStatsCalculator()
static void UlPhyTransmissionCallback(Ptr< PhyTxStatsCalculator > phyTxStats, std::string path, PhyTransmissionStatParameters params)
NS_LOG_COMPONENT_DEFINE("PacketLossCounter")
void SetUlTxOutputFilename(std::string outputFilename)
#define NS_LOG_ERROR(msg)
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
static TypeId GetTypeId(void)
void UlPhyTransmission(PhyTransmissionStatParameters params)
std::string GetDlOutputFilename(void)