Loading...
Searching...
No Matches
satellite-orbiter-helper-lora.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 * Copyright (c) 2018 CNES
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation;
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Sami Rantanen <sami.rantanen@magister.fi>
20 * Author: Mathias Ettinger <mettinger@viveris.toulouse.fr>
21 */
22
23#ifndef SAT_ORBITER_HELPER_LORA_H
24#define SAT_ORBITER_HELPER_LORA_H
25
27
28#include "ns3/error-model.h"
29#include "ns3/net-device-container.h"
30#include "ns3/node-container.h"
31#include "ns3/object-factory.h"
32#include "ns3/output-stream-wrapper.h"
33#include "ns3/pointer.h"
34#include "ns3/satellite-bbframe-conf.h"
35#include "ns3/satellite-channel.h"
36#include "ns3/satellite-fwd-link-scheduler.h"
37#include "ns3/satellite-ncc.h"
38#include "ns3/satellite-orbiter-feeder-mac.h"
39#include "ns3/satellite-orbiter-net-device.h"
40#include "ns3/satellite-phy.h"
41#include "ns3/satellite-scpc-scheduler.h"
42#include "ns3/satellite-superframe-sequence.h"
43#include "ns3/satellite-typedefs.h"
44#include "ns3/traced-callback.h"
45
46#include <map>
47#include <stdint.h>
48#include <string>
49#include <utility>
50#include <vector>
51
52namespace ns3
53{
54
61{
62 public:
67 static TypeId GetTypeId(void);
68
73
79 uint32_t rtnLinkCarrierCount,
80 uint32_t fwdLinkCarrierCount,
81 Ptr<SatSuperframeSeq> seq,
84 RandomAccessSettings_s randomAccessSettings);
85
87 {
88 }
89
95 virtual Ptr<SatOrbiterNetDevice> CreateOrbiterNetDevice();
96
97 /*
98 * Attach the SatChannels for the beam to NetDevice
99 * @param dev NetDevice to attach channels
100 * @param uf user forward channel
101 * @param uf user return channel
102 * @param userAgp user beam antenna gain pattern
103 * @param ncc NCC (Network Control Center)
104 * @param satId ID of satellite associated to this channel
105 * @param userBeamId Id of the beam
106 */
107 virtual void AttachChannelsUser(Ptr<SatOrbiterNetDevice> dev,
108 Ptr<SatChannel> uf,
109 Ptr<SatChannel> ur,
110 Ptr<SatAntennaGainPattern> userAgp,
111 Ptr<SatNcc> ncc,
112 uint32_t satId,
113 uint32_t userBeamId);
114};
115
116} // namespace ns3
117
118#endif /* SAT_ORBITER_HELPER_LORA_H */
Callback< Ptr< SatControlMessage >, uint32_t > ReadCtrlMsgCallback
Callback to read control messages from container storing control messages.
SatOrbiterHelper()
Default constructor.
static TypeId GetTypeId(void)
Get the type ID.
virtual Ptr< SatOrbiterNetDevice > CreateOrbiterNetDevice()
Create a SatOrbiterNetDevice instance, with correct type infered from child classes.
virtual void AttachChannelsUser(Ptr< SatOrbiterNetDevice > dev, Ptr< SatChannel > uf, Ptr< SatChannel > ur, Ptr< SatAntennaGainPattern > userAgp, Ptr< SatNcc > ncc, uint32_t satId, uint32_t userBeamId)
Callback< double, SatEnums::ChannelType_t, uint32_t, SatEnums::CarrierBandwidthType_t > CarrierBandwidthConverter_t
Callback for carrier bandwidths.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.