25 #ifndef SAT_SGP4_MOBILITY_MODEL_H
26 #define SAT_SGP4_MOBILITY_MODEL_H
33 #include <ns3/nstime.h>
34 #include <ns3/vector.h>
142 Vector3D
operator*(
const Vector3D& v)
const;
200 const Vector3D& vteme,
GeoCoordinate class is used to store and operate with geodetic coordinates.
Class to handle Julian days and provide respective Earth Orientation Parameters (EOP).
Keep track of the current position and velocity of an object in satellite network.
Keep track of the current position and velocity of satellite using SGP4 model.
std::string m_startStr
Simulation absolute start time in string format.
virtual void DoSetGeoPosition(const GeoCoordinate &position)
static const gravconsttype WGeoSys
World Geodetic System (WGS) constants to be used by SGP4/SDP4 models.
JulianDate GetStartTime() const
Get the time instant considered as the simulation start.
virtual void DoSetPosition(const Vector &position)
static const uint32_t TleSatInfoWidth
Satellite's information line size defined by TLE data format.
GeoCoordinate m_lastPosition
Last saved satellite position.
void SetStartTime(const JulianDate &t)
Set the time instant considered as the simulation start.
SatSGP4MobilityModel()
Default constructor.
TypeId GetInstanceTypeId(void) const
static Matrix PefToItrf(const JulianDate &t)
Retrieve the matrix for converting from PEF to ITRF at a given time.
Time m_updatePositionPeriod
Period of satellite position refresh, if UpdatePositionEachRequest is false.
JulianDate GetTleEpoch(void) const
Retrieve the TLE epoch time.
bool m_updatePositionEachRequest
Compute position each time a packet is transmitted.
virtual Vector DoGetVelocity() const
elsetrec m_sgp4_record
SGP4/SDP4 record.
static Vector3D rvTemeTovItrf(const Vector3D &rteme, const Vector3D &vteme, const JulianDate &t)
Retrieve the satellite's velocity vector in ITRF coordinates.
static Matrix TemeToPef(const JulianDate &t)
Retrieve the matrix for converting from TEME to PEF at a given time.
Time m_timeLastUpdate
Last position update time.
std::string m_tle2
satellite's TLE data.
static TypeId GetTypeId(void)
Get the type ID.
static Vector3D rTemeTorItrf(const Vector3D &rteme, const JulianDate &t)
Retrieve the satellite's position vector in ITRF coordinates.
void SetStartDate(std::string startStr)
Set the simulation absolute start time in string format.
virtual GeoCoordinate DoGetGeoPosition() const
bool IsInitialized(void) const
Check if the satellite has already been initialized.
virtual Vector DoGetPosition() const
void SetTleInfo(const std::string &tle)
Set satellite's TLE information required for its initialization.
JulianDate m_start
Simulation absolute start time.
virtual ~SatSGP4MobilityModel()
Destructor.
SatArqSequenceNumber is handling the sequence numbers for the ARQ process.
Matrix data structure to make coordinate conversion code clearer and less verbose.
Matrix Transpose(void) const
Vector3D operator*(const Vector3D &v) const
const Row & operator[](uint32_t i) const
Row & operator[](uint32_t i)
double & operator[](uint32_t i)
const double & operator[](uint32_t i) const