18#include "ns3/double.h"
19#include "ns3/uinteger.h"
38 TypeId(
"ns3::LeoCircularOrbitPositionAllocator")
42 .AddAttribute(
"NumOrbits",
43 "The number of orbits",
48 .AddAttribute(
"NumSatellites",
49 "The number of satellites per orbit",
54 .AddAttribute(
"PhasingFactor",
55 "Walker Delta phasing factor F; staggers satellites in "
56 "adjacent planes by F * 360 / T degrees, where "
57 "T = NumOrbits * NumSatellites",
62 .AddAttribute(
"RaanSpanDeg",
63 "Total RAAN span in degrees over which orbital planes "
64 "are distributed (360 for Walker Delta, 180 for Walker Star)",
82 return Vector{params.longitude, params.argumentOfLatitude, params.satelliteIndex};
This class can be used to hold variables of floating point type such as 'double' or 'float'.
Allocate pairs of longitude and latitude (offset within orbit) for use in LeoCircularOrbitMobilityMod...
Vector GetNext() const override
Gets the next position on the longitude grid (base class compat).
static TypeId GetTypeId()
Get the type ID.
uint64_t m_lastOrbit
The last orbit that has been assigned.
double GetRaanSpanDeg() const
Get the RAAN span in degrees.
uint64_t GetNumOrbits() const
Get the number of orbits (planes) in the constellation.
void SetRaanSpanDeg(double deg)
Set the RAAN (Right Ascension of the Ascending Node) span in degrees.
void SetNumSatellites(uint64_t num)
Set the number of satellites per orbit.
int64_t AssignStreams(int64_t stream) override
Assign a fixed random variable stream number to the random variables used by this model.
~LeoCircularOrbitAllocator() override
destructor
uint64_t GetNumSatellites() const
Get the number of satellites per orbit.
LeoOrbitPosition GetNextOrbitPosition() const
Gets the next position on the longitude grid.
uint64_t m_lastSatellite
The last position inside the orbit that has been assigned.
LeoCircularOrbitAllocator()
constructor
void SetNumOrbits(uint64_t num)
Set the number of orbits (planes) in the constellation.
struct ns3::LeoCircularOrbitAllocator::Config m_config
Configuration parameters.
uint16_t GetPhasingFactor() const
Get the phasing factor.
void SetPhasingFactor(uint16_t factor)
Set the phasing factor (angular spacing between adjacent orbits).
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Hold an unsigned integer type.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Declaration of LeoCircularOrbitAllocator.
log2() macro definition; to deal with Bug 1467.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< const AttributeChecker > MakeUintegerChecker()
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Ptr< const AttributeChecker > MakeDoubleChecker()
Ptr< const AttributeAccessor > MakeDoubleAccessor(T1 a1)
Represents a position in a Walker constellation as a pair of angular coordinates.