A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
phy-rx-stats-calculator.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Jaume Nin <jnin@cttc.es>
18 * modified by: Marco Miozzo <mmiozzo@cttc.es>
19 * Convert MacStatsCalculator in PhyRxStatsCalculator
20 */
21
22#ifndef PHY_RX_STATS_CALCULATOR_H_
23#define PHY_RX_STATS_CALCULATOR_H_
24
26
27#include "ns3/nstime.h"
28#include "ns3/uinteger.h"
29#include <ns3/lte-common.h>
30
31#include <fstream>
32#include <string>
33
34namespace ns3
35{
36
37/**
38 * \ingroup lte
39 *
40 * Takes care of storing the information generated at PHY layer regarding
41 * reception. Metrics saved are:
42 *
43 * - Timestamp (in seconds)
44 * - Frame index
45 * - Subframe index
46 * - C-RNTI
47 * - MCS for transport block 1
48 * - Size of transport block 1
49 * - MCS for transport block 2 (0 if not used)
50 * - Size of transport block 2 (0 if not used)
51 */
53{
54 public:
55 /**
56 * Constructor
57 */
59
60 /**
61 * Destructor
62 */
63 ~PhyRxStatsCalculator() override;
64
65 // Inherited from ns3::Object
66 /**
67 * Register this type.
68 * \return The object TypeId.
69 */
70 static TypeId GetTypeId();
71
72 /**
73 * Set the name of the file where the UL Rx PHY statistics will be stored.
74 *
75 * \param outputFilename string with the name of the file
76 */
77 void SetUlRxOutputFilename(std::string outputFilename);
78
79 /**
80 * Get the name of the file where the UL RX PHY statistics will be stored.
81 * @return the name of the file where the UL RX PHY statistics will be stored
82 */
83 std::string GetUlRxOutputFilename();
84
85 /**
86 * Set the name of the file where the DL RX PHY statistics will be stored.
87 *
88 * @param outputFilename string with the name of the file
89 */
90 void SetDlRxOutputFilename(std::string outputFilename);
91
92 /**
93 * Get the name of the file where the DL RX PHY statistics will be stored.
94 * @return the name of the file where the DL RX PHY statistics will be stored
95 */
96 std::string GetDlRxOutputFilename();
97
98 /**
99 * Notifies the stats calculator that an downlink reception has occurred.
100 * @param params Trace information regarding PHY reception stats
101 */
103
104 /**
105 * Notifies the stats calculator that an uplink reception has occurred.
106 * @param params Trace information regarding PHY reception stats
107 */
109
110 /**
111 * trace sink
112 *
113 * \param phyRxStats
114 * \param path
115 * \param params
116 */
118 std::string path,
120
121 /**
122 * trace sink
123 *
124 * \param phyRxStats
125 * \param path
126 * \param params
127 */
129 std::string path,
131
132 private:
133 /**
134 * When writing DL RX PHY statistics first time to file,
135 * columns description is added. Then next lines are
136 * appended to file. This value is true if output
137 * files have not been opened yet
138 */
140
141 /**
142 * When writing UL RX PHY statistics first time to file,
143 * columns description is added. Then next lines are
144 * appended to file. This value is true if output
145 * files have not been opened yet
146 */
148
149 /**
150 * DL RX PHY output trace file
151 */
152 std::ofstream m_dlRxOutFile;
153
154 /**
155 * UL RX PHY output trace file
156 */
157 std::ofstream m_ulRxOutFile;
158};
159
160} // namespace ns3
161
162#endif /* PHY_RX_STATS_CALCULATOR_H_ */
Base class for ***StatsCalculator classes.
Takes care of storing the information generated at PHY layer regarding reception.
static TypeId GetTypeId()
Register this type.
bool m_dlRxFirstWrite
When writing DL RX PHY statistics first time to file, columns description is added.
std::ofstream m_ulRxOutFile
UL RX PHY output trace file.
bool m_ulRxFirstWrite
When writing UL RX PHY statistics first time to file, columns description is added.
static void UlPhyReceptionCallback(Ptr< PhyRxStatsCalculator > phyRxStats, std::string path, PhyReceptionStatParameters params)
trace sink
std::string GetUlRxOutputFilename()
Get the name of the file where the UL RX PHY statistics will be stored.
void DlPhyReception(PhyReceptionStatParameters params)
Notifies the stats calculator that an downlink reception has occurred.
void SetDlRxOutputFilename(std::string outputFilename)
Set the name of the file where the DL RX PHY statistics will be stored.
std::string GetDlRxOutputFilename()
Get the name of the file where the DL RX PHY statistics will be stored.
~PhyRxStatsCalculator() override
Destructor.
static void DlPhyReceptionCallback(Ptr< PhyRxStatsCalculator > phyRxStats, std::string path, PhyReceptionStatParameters params)
trace sink
void UlPhyReception(PhyReceptionStatParameters params)
Notifies the stats calculator that an uplink reception has occurred.
void SetUlRxOutputFilename(std::string outputFilename)
Set the name of the file where the UL Rx PHY statistics will be stored.
std::ofstream m_dlRxOutFile
DL RX PHY output trace file.
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.
PhyReceptionStatParameters structure.
Definition: lte-common.h:212