5G-LENA nr-v3.1-14-g738b08bc
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
node-distribution-scenario-interface.h
1// Copyright (c) 2019 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
2//
3// SPDX-License-Identifier: GPL-2.0-only
4
5#ifndef NODE_DISTRIBUTION_SCENARIO_INTERFACE_H
6#define NODE_DISTRIBUTION_SCENARIO_INTERFACE_H
7
8#include "scenario-parameters.h"
9
10#include <ns3/node-container.h>
11#include <ns3/vector.h>
12
13namespace ns3
14{
15
25{
26 public:
35 const NodeContainer& GetBaseStations() const;
40 const NodeContainer& GetUserTerminals() const;
41
48 virtual void CreateScenario() = 0;
49
54 void SetSitesNumber(std::size_t n);
55
62 void SetBsNumber(std::size_t n);
63
70 void SetUtNumber(std::size_t n);
71
76 std::size_t GetNumSites() const;
77
82 std::size_t GetNumCells() const;
83
91 double GetAntennaOrientationDegrees(std::size_t cellId) const;
92
99 double GetAntennaOrientationRadians(std::size_t cellId) const;
100
106 Vector GetAntennaPosition(const Vector& sitePos, uint16_t cellId) const;
107
113 uint16_t GetSiteIndex(std::size_t cellId) const;
114
120 uint16_t GetSectorIndex(std::size_t cellId) const;
121
127 uint16_t GetCellIndex(std::size_t ueId) const;
128
129 protected:
130 std::size_t m_numSites;
131 std::size_t m_numBs;
132 std::size_t m_numUt;
133 NodeContainer m_bs;
134 NodeContainer m_ut;
135};
136
137} // namespace ns3
138
139#endif // NODE_DISTRIBUTION_SCENARIO_INTERFACE_H
Represents a scenario with base stations and user terminals.
virtual void CreateScenario()=0
Create the scenario, with the configured parameter.
const NodeContainer & GetUserTerminals() const
Get the list of user nodes.
std::size_t GetNumSites() const
Gets the number of sites with cell base stations.
std::size_t m_numBs
Number of base stations to create.
uint16_t GetSiteIndex(std::size_t cellId) const
Gets the site index the queried cell id belongs to.
void SetBsNumber(std::size_t n)
Set the number of base stations.
uint16_t GetCellIndex(std::size_t ueId) const
Get the cell (base station) index the queried UE id belongs to.
Vector GetAntennaPosition(const Vector &sitePos, uint16_t cellId) const
Returns the position of the cell antenna.
std::size_t m_numUt
Number of user terminals to create.
void SetUtNumber(std::size_t n)
Set the number of UT/UE.
std::size_t m_numSites
Number of sites with base stations.
void SetSitesNumber(std::size_t n)
Set number of sites/towers.
~NodeDistributionScenarioInterface() override
~NodeDistributionScenarioInterface
double GetAntennaOrientationDegrees(std::size_t cellId) const
Returns the orientation in degrees of the antenna array for the given cellId. The orientation is the ...
uint16_t GetSectorIndex(std::size_t cellId) const
Get the sector index the queried cell id belongs to.
std::size_t GetNumCells() const
Gets the total number of cells deployed.
const NodeContainer & GetBaseStations() const
Get the list of gnb/base station nodes.
double GetAntennaOrientationRadians(std::size_t cellId) const
Returns the orientation in radians of the antenna array for the given cellId.
Basic simulation scenario parameters.