23 #include "phy-rx-stats-calculator.h"
24 #include "ns3/string.h"
25 #include <ns3/simulator.h>
32 NS_OBJECT_ENSURE_REGISTERED (PhyRxStatsCalculator);
35 : m_dlRxFirstWrite (true),
36 m_ulRxFirstWrite (true)
52 .AddConstructor<PhyRxStatsCalculator> ()
53 .AddAttribute (
"DlRxOutputFilename",
54 "Name of the file where the downlink results will be saved.",
58 .AddAttribute (
"UlRxOutputFilename",
59 "Name of the file where the uplink results will be saved.",
94 NS_LOG_FUNCTION (
this << params.m_cellId << params.m_imsi << params.m_timestamp << params.m_rnti << params.m_layer << params.m_mcs << params.m_size << params.m_rv << params.m_ndi << params.m_correctness);
97 std::ofstream outFile;
98 if ( m_dlRxFirstWrite ==
true )
101 if (!outFile.is_open ())
106 m_dlRxFirstWrite =
false;
107 outFile <<
"% time\tcellId\tIMSI\tRNTI\ttxMode\tlayer\tmcs\tsize\trv\tndi\tcorrect";
108 outFile << std::endl;
113 if (!outFile.is_open ())
121 outFile << params.m_timestamp <<
"\t";
122 outFile << (uint32_t) params.m_cellId <<
"\t";
123 outFile << params.m_imsi <<
"\t";
124 outFile << params.m_rnti <<
"\t";
125 outFile << (uint32_t) params.m_txMode <<
"\t";
126 outFile << (uint32_t) params.m_layer <<
"\t";
127 outFile << (uint32_t) params.m_mcs <<
"\t";
128 outFile << params.m_size <<
"\t";
129 outFile << (uint32_t) params.m_rv <<
"\t";
130 outFile << (uint32_t) params.m_ndi <<
"\t";
131 outFile << (uint32_t) params.m_correctness << std::endl;
138 NS_LOG_FUNCTION (
this << params.m_cellId << params.m_imsi << params.m_timestamp << params.m_rnti << params.m_layer << params.m_mcs << params.m_size << params.m_rv << params.m_ndi << params.m_correctness);
141 std::ofstream outFile;
142 if ( m_ulRxFirstWrite ==
true )
145 if (!outFile.is_open ())
150 m_ulRxFirstWrite =
false;
151 outFile <<
"% time\tcellId\tIMSI\tRNTI\ttxMode\tlayer\tmcs\tsize\trv\tndi\tcorrect";
152 outFile << std::endl;
157 if (!outFile.is_open ())
165 outFile << params.m_timestamp <<
"\t";
166 outFile << (uint32_t) params.m_cellId <<
"\t";
167 outFile << params.m_imsi <<
"\t";
168 outFile << params.m_rnti <<
"\t";
169 outFile << (uint32_t) params.m_txMode <<
"\t";
170 outFile << (uint32_t) params.m_layer <<
"\t";
171 outFile << (uint32_t) params.m_mcs <<
"\t";
172 outFile << params.m_size <<
"\t";
173 outFile << (uint32_t) params.m_rv <<
"\t";
174 outFile << (uint32_t) params.m_ndi <<
"\t";
175 outFile << (uint32_t) params.m_correctness << std::endl;
#define NS_LOG_FUNCTION(parameters)
hold variables of type string
#define NS_LOG_COMPONENT_DEFINE(name)
void DlPhyReception(PhyReceptionStatParameters params)
std::string GetUlRxOutputFilename(void)
void SetUlOutputFilename(std::string outputFilename)
virtual ~PhyRxStatsCalculator()
void UlPhyReception(PhyReceptionStatParameters params)
std::string GetUlOutputFilename(void)
void SetDlOutputFilename(std::string outputFilename)
std::string GetDlRxOutputFilename(void)
#define NS_LOG_ERROR(msg)
void SetUlRxOutputFilename(std::string outputFilename)
void SetDlRxOutputFilename(std::string outputFilename)
static TypeId GetTypeId(void)
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
std::string GetDlOutputFilename(void)