Loading...
Searching...
No Matches
satellite-gw-phy.h
Go to the documentation of this file.
1/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2013 Magister Solutions Ltd.
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 as
7 * published by the Free Software Foundation;
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 *
18 * Author: Sami Rantanen <sami.rantanen@magister.fi>
19 */
20
21#ifndef SATELLITE_GW_PHY_H
22#define SATELLITE_GW_PHY_H
23
26#include "satellite-phy.h"
28
29#include "ns3/address.h"
30#include "ns3/nstime.h"
31#include "ns3/object.h"
32#include "ns3/packet.h"
33#include "ns3/ptr.h"
34
35#include <stdint.h>
36
37namespace ns3
38{
39
40class SatPhyRxCarrier;
45
51class SatGwPhy : public SatPhy
52{
53 public:
57 SatGwPhy(void);
58
60 Ptr<SatLinkResults> linkResults,
61 SatPhyRxCarrierConf::RxCarrierCreateParams_s parameters,
62 Ptr<SatSuperframeConf> superFrameConf);
63
72 virtual void NotifyConstructionCompleted() override;
73
77 virtual ~SatGwPhy();
78
82 static TypeId GetTypeId(void);
83 virtual void DoInitialize(void);
84
88 virtual void DoDispose(void);
89
95 virtual double GetAdditionalInterference();
96
102 void PerformHandover(uint32_t satId, uint32_t beamId);
103
104 protected:
110
116
117 private:
123
127 Ptr<SatLinkResults> m_linkResults;
128
132 SatPhyRxCarrierConf::RxCarrierCreateParams_s m_parameters;
133
137 Ptr<SatSuperframeConf> m_superFrameConf;
138
143
148
153
158};
159
160} // namespace ns3
161
162#endif /* SATELLITE_GW_PHY_H */
SatLinkDir_t
Link direction used for packet tracing.
virtual double GetAdditionalInterference()
Get additional interference, used to compute final SINR at RX.
double m_imInterferenceCOverI
Intermodulation interference in linear.
SatGwPhy(void)
Default constructor.
SatPhyRxCarrierConf::RxCarrierCreateParams_s m_parameters
RX carrier configuration parameters.
virtual void DoInitialize(void)
Initialization of SatPhy.
double m_aciIfWrtNoisePercent
Configured adjacent channel interference wrt noise (percent).
virtual void DoDispose(void)
Dispose of this class instance.
virtual void NotifyConstructionCompleted() override
Notifier called once the ObjectBase is fully constructed.
Ptr< SatSuperframeConf > m_superFrameConf
Super frame cofiguration.
void PerformHandover(uint32_t satId, uint32_t beamId)
Change underlying SatChannel to send and receive data from a new satellite and beam.
virtual ~SatGwPhy()
Destructor for SatGwPhy.
void AssignNewSatChannels()
Update the underlying SatChannel to send and receive data from the current beam (as described in the ...
double m_imInterferenceCOverIDb
Configured intermodulation interference in dB.
Time m_antennaReconfigurationDelay
Delay of antenna reconfiguration when performing handover.
virtual SatEnums::SatLinkDir_t GetSatLinkTxDir()
Get the link TX direction.
virtual SatEnums::SatLinkDir_t GetSatLinkRxDir()
Get the link RX direction.
Ptr< SatLinkResults > m_linkResults
Link results used for this physical layer.
static TypeId GetTypeId(void)
inherited from Object
SatPhy(void)
Default constructor.
Base class for all SatPhyRxCarriers.
Inherited the functionality of ground station SatPhyRxCarriers and extended it with CRDSA functionali...
Inherited the base functionality of SatPhyRxCarriers for ground station nodes.
Inherited the functionality of ground station SatPhyRxCarriers and extended it with CRDSA functionali...
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Creation parameters for base PHY object.