satellite-traced-mobility-model.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2018 CNES
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: Mathias Ettinger <mettinger@toulouse.viveris.com>
19  */
20 
21 #ifndef SATELLITE_TRACED_MOBILITY_MODEL_H
22 #define SATELLITE_TRACED_MOBILITY_MODEL_H
23 
26 
27 #include <ns3/nstime.h>
28 
29 namespace ns3
30 {
31 
39 {
40  public:
45  static TypeId GetTypeId(void);
46  TypeId GetInstanceTypeId(void) const;
47 
51  virtual void DoDispose();
52 
57 
61  SatTracedMobilityModel(uint32_t satId,
62  const std::string& filename,
63  Ptr<SatAntennaGainPatternContainer> agp);
64 
68  virtual ~SatTracedMobilityModel();
69 
73  uint32_t GetBestBeamId(void) const;
74 
75  private:
79  virtual Vector DoGetVelocity(void) const;
80 
84  virtual GeoCoordinate DoGetGeoPosition(void) const;
85 
89  virtual void DoSetGeoPosition(const GeoCoordinate& position);
90 
91  void UpdateGeoPositionFromFile(void);
92 
93  uint32_t m_satId;
94  std::string m_traceFilename;
98  Vector m_velocity;
99  Ptr<SatAntennaGainPatternContainer> m_antennaGainPatterns;
100 };
101 
102 } // namespace ns3
103 
104 #endif /* SATELLITE_TRACED_MOBILITY_MODEL_H */
GeoCoordinate class is used to store and operate with geodetic coordinates.
Keep track of the current position and velocity of an object in satellite network.
Satellite mobility model for which the current position change based on values read from a file.
uint32_t GetBestBeamId(void) const
Return the best beam ID based on the current position.
static TypeId GetTypeId(void)
Get the type ID.
Ptr< SatAntennaGainPatternContainer > m_antennaGainPatterns
virtual ~SatTracedMobilityModel()
Destructor for SatMobilityModel.
virtual void DoDispose()
Dispose of this class instance.
virtual GeoCoordinate DoGetGeoPosition(void) const
virtual void DoSetGeoPosition(const GeoCoordinate &position)
GeoCoordinate::ReferenceEllipsoid_t m_refEllipsoid
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.