IChannelControl.h Source File

Simu5G: IChannelControl.h Source File
Simu5G
IChannelControl.h
1//
2// Simu5G
3//
4// Copyright (C) Rudolf Hornig
5// Copyright (C) 2019-2021 Giovanni Nardini, Giovanni Stea, Antonio Virdis et al. (University of Pisa)
6// Copyright (C) 2022-2026 Giovanni Nardini, Giovanni Stea et al. (University of Pisa)
7//
8// This file is part of a software released under the license included in file
9// "license.pdf". Please read LICENSE and README files before using it.
10// The above files and the present reference are part of the software itself,
11// and cannot be removed from it.
12//
13
14#ifndef ICHANNELCONTROL_H
15#define ICHANNELCONTROL_H
16
17#include <vector>
18#include <list>
19#include <set>
20
21#include <inet/common/INETDefs.h>
22#include <inet/common/geometry/common/Coord.h>
23#include "simu5g/common/LteDefs.h"
24#include "simu5g/stack/phy/packet/AirFrame_m.h"
25
26namespace simu5g {
27
28using namespace omnetpp;
29
34{
35 protected:
36 struct RadioEntry;
37
38 public:
39 typedef RadioEntry *RadioRef; // handle for ChannelControl's clients
40 typedef std::list<AirFrame *> TransmissionList;
41
42 public:
43
45 virtual RadioRef registerRadio(cModule *radioModule, cGate *radioInGate = nullptr) = 0;
46
48 virtual void unregisterRadio(RadioRef r) = 0;
49
51 virtual cModule *getRadioModule(RadioRef r) const = 0;
52
54 virtual cGate *getRadioGate(RadioRef r) const = 0;
55
57 virtual int getRadioChannel(RadioRef r) const = 0;
58
60 virtual void setRadioPosition(RadioRef r, const inet::Coord& pos) = 0;
61
63 virtual void setRadioChannel(RadioRef r, int channel) = 0;
64
66 virtual int getNumChannels() = 0;
67
69 virtual const TransmissionList& getOngoingTransmissions(int channel) = 0;
70
72 virtual void sendToChannel(RadioRef srcRadio, AirFrame *airFrame) = 0;
73
75 virtual double getInterferenceRange(RadioRef r) = 0;
76
78 virtual void disableReception(RadioRef r) = 0;
79
81 virtual void enableReception(RadioRef r) = 0;
82
84 virtual double getPropagationSpeed() = 0;
85};
86
87} //namespace
88
89#endif
90
Definition IChannelControl.h:34
virtual void enableReception(RadioRef r)=0
virtual void sendToChannel(RadioRef srcRadio, AirFrame *airFrame)=0
virtual int getNumChannels()=0
virtual void setRadioPosition(RadioRef r, const inet::Coord &pos)=0
virtual int getRadioChannel(RadioRef r) const =0
virtual double getPropagationSpeed()=0
virtual void setRadioChannel(RadioRef r, int channel)=0
virtual cModule * getRadioModule(RadioRef r) const =0
virtual void disableReception(RadioRef r)=0
virtual void unregisterRadio(RadioRef r)=0
virtual RadioRef registerRadio(cModule *radioModule, cGate *radioInGate=nullptr)=0
virtual cGate * getRadioGate(RadioRef r) const =0
virtual double getInterferenceRange(RadioRef r)=0
virtual const TransmissionList & getOngoingTransmissions(int channel)=0
Definition AlertReceiver.h:24
Definition ChannelControl.h:40