AmcPilot.h Source File

Simu5G: AmcPilot.h Source File
Simu5G
AmcPilot.h
1//
2// Simu5G
3//
4// Copyright (C) 2012-2021 Giovanni Nardini, Giovanni Stea, Antonio Virdis et al. (University of Pisa)
5// Copyright (C) 2022-2026 Giovanni Nardini, Giovanni Stea et al. (University of Pisa)
6//
7// This file is part of a software released under the license included in file
8// "license.pdf". Please read LICENSE and README files before using it.
9// The above files and the present reference are part of the software itself,
10// and cannot be removed from it.
11//
12
13#ifndef _LTE_AMCPILOT_H_
14#define _LTE_AMCPILOT_H_
15
16#include "simu5g/common/LteCommon.h"
17#include "simu5g/stack/mac/amc/LteAmc.h"
18#include "simu5g/stack/mac/amc/UserTxParams.h"
19#include "simu5g/stack/phy/feedback/LteFeedback.h"
20
21namespace simu5g {
22
24class LteAmc;
25
35{
36 protected:
37 Binder *binder_ = nullptr;
38
40 LteAmc *amc_ = nullptr;
41
43 std::string name_;
44
46 UsableBandsList usableBandsList_;
47
48 // specifies how the final CQI will be computed from the per band CQIs (e.g. AVG, MAX, MIN)
49 PilotComputationModes mode_;
50
51 public:
52
57 AmcPilot(Binder *binder, LteAmc *amc) : binder_(binder), amc_(amc), name_("NONE")
58 {
59 WATCH(usableBandsList_);
60 }
61
65 virtual ~AmcPilot() {
66 }
67
74 virtual const UserTxParams& computeTxParams(MacNodeId id, const Direction dir, GHz carrierFrequency) = 0;
75
80 std::string getName()
81 {
82 return name_;
83 }
84
85 virtual std::vector<Cqi> getMultiBandCqi(MacNodeId id, const Direction dir, GHz carrierFrequency) = 0;
86
87 virtual void setUsableBands(MacNodeId id, UsableBands usableBands) = 0;
88 virtual UsableBands *getUsableBands(MacNodeId id) = 0;
89
90 void setMode(PilotComputationModes mode) { mode_ = mode; }
91};
92
93} //namespace
94
95#endif
96
std::string name_
Pilot Name.
Definition AmcPilot.h:43
virtual ~AmcPilot()
Definition AmcPilot.h:65
UsableBandsList usableBandsList_
contains for each user, the subset of Bands that will be considered in the AMC operations
Definition AmcPilot.h:46
LteAmc * amc_
LteAmc owner module.
Definition AmcPilot.h:40
AmcPilot(Binder *binder, LteAmc *amc)
Definition AmcPilot.h:57
std::string getName()
Definition AmcPilot.h:80
virtual const UserTxParams & computeTxParams(MacNodeId id, const Direction dir, GHz carrierFrequency)=0
Definition Binder.h:48
Lte AMC module for Omnet++ simulator.
Definition LteAmc.h:45
Definition AlertReceiver.h:24