Class LunaNetSatApp

Inheritance Relationships

Base Type

Class Documentation

class LunaNetSatApp : public lupnt::Application

Composite application attached to a LunaNet satellite agent.

The simulation schedules this application like any other Application. Each scheduled call fans out to registered sub-apps in insertion order. This keeps the satellite-level event cadence in one place while allowing ODTS, prediction, ephemeris fitting, and nav-message generation to be developed as separate modules.

Public Functions

LunaNetSatApp() = default
explicit LunaNetSatApp(Config &config)
void AddSubApp(Ptr<LunaNetSubApp> app)
inline const std::vector<Ptr<LunaNetSubApp>> &GetSubApps() const
virtual void Setup() override

Initialize the application and schedule its periodic Step() calls.

Base implementation: if GetFrequency() > 0, schedules Step(t) on the owning agent’s Simulation at Event::Priority::APPLICATION, starting at t=0 with period 1/GetFrequency() seconds; otherwise logs a warning that no frequency is set. Derived classes (e.g. RoverApp::Setup, SurfaceStationApp::Setup) override this to additionally initialize their Filter’s time/state/covariance and dynamics/process noise callbacks before (optionally) calling the base behavior.

virtual void Step(Real t) override

Run one simulation step of this application’s mission logic at time t.

Pure virtual: derived classes implement the actual filter predict/update cycle here (e.g. RoverApp::Step computes a control input and logs state; the LNSS application’s Step would run the GNSS measurement-update). Invoked periodically by the Simulation event scheduled in Setup(), at the application’s configured frequency.

Parameters:

t – Current simulation time [s, since simulation epoch]

void Finish()