5G-LENA nr-v3.0-33-g7aea1e4
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
ideal-beamforming-helper.h
1/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2
3// Copyright (c) 2020 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4//
5// SPDX-License-Identifier: GPL-2.0-only
6
7#include "beamforming-helper-base.h"
8
9#include "ns3/event-id.h"
10#include <ns3/beamforming-vector.h>
11#include <ns3/nstime.h>
12
13#ifndef SRC_NR_HELPER_IDEAL_BEAMFORMING_HELPER_H_
14#define SRC_NR_HELPER_IDEAL_BEAMFORMING_HELPER_H_
15
16namespace ns3
17{
18
19class NrGnbNetDevice;
20class NrUeNetDevice;
21class IdealBeamformingAlgorithm;
22
28{
29 public:
37 ~IdealBeamformingHelper() override;
38
43 static TypeId GetTypeId();
44
49 void SetBeamformingMethod(const TypeId& beamformingMethod) override;
50
55 void SetPeriodicity(const Time& v);
60 Time GetPeriodicity() const;
61
65 virtual void Run() const;
66
73 void AddBeamformingTask(const Ptr<NrGnbNetDevice>& gNbDev,
74 const Ptr<NrUeNetDevice>& ueDev) override;
75
76 protected:
77 // inherited from Object
78 void DoInitialize() override;
79
84 virtual void ExpireBeamformingTimer();
85
86 BeamformingVectorPair GetBeamformingVectors(
87 const Ptr<NrSpectrumPhy>& gnbSpectrumPhy,
88 const Ptr<NrSpectrumPhy>& ueSpectrumPhy) const override;
89
94 Ptr<IdealBeamformingAlgorithm>
96
97 std::list<SpectrumPhyPair> m_spectrumPhyPair;
98};
99
100}; // namespace ns3
101
102#endif /* SRC_NR_HELPER_IDEAL_BEAMFORMING_HELPER_H_ */
The BeamformingHelperBase class that is being used as the general interface for beamforming helper cl...
The IdealBeamformingHelper class.
virtual void ExpireBeamformingTimer()
The beamforming timer has expired; at the next slot, perform beamforming.
virtual void Run() const
Run beamforming task.
static TypeId GetTypeId()
Get the Type ID.
IdealBeamformingHelper()
IdealBeamformingHelper.
std::list< SpectrumPhyPair > m_spectrumPhyPair
The list of beamforming tasks to be executed.
Ptr< IdealBeamformingAlgorithm > m_beamformingAlgorithm
The beamforming algorithm that will be used.
void SetPeriodicity(const Time &v)
SetIdealBeamformingPeriodicity.
void AddBeamformingTask(const Ptr< NrGnbNetDevice > &gNbDev, const Ptr< NrUeNetDevice > &ueDev) override
Specify among which devices the beamforming algorithm should be performed.
BeamformingVectorPair GetBeamformingVectors(const Ptr< NrSpectrumPhy > &gnbSpectrumPhy, const Ptr< NrSpectrumPhy > &ueSpectrumPhy) const override
Function that will call the configured algorithm for the specified devices and obtain the beamforming...
~IdealBeamformingHelper() override
~IdealBeamformingHelper
void SetBeamformingMethod(const TypeId &beamformingMethod) override
SetBeamformingMethod.
Time GetPeriodicity() const
GetIdealBeamformingPeriodicity.