WSF
wsf::space::OrbitalMissionVerificationContext Class Reference

#include <WsfSpaceOrbitalMissionVerificationContext.hpp>

Inheritance diagram for wsf::space::OrbitalMissionVerificationContext:
Collaboration diagram for wsf::space::OrbitalMissionVerificationContext:

Public Member Functions

 OrbitalMissionVerificationContext (const WsfOrbitalManeuvering &aManeuvering, const UtOrbitalPropagatorBase &aPropagator, const WsfOrbitalMissionSequence &aMissionEvents, const std::string &aPlatformName)
 ~OrbitalMissionVerificationContext () override=default
void Update (const UtCalendar &aEpoch) override
bool Initialize (const UtCalendar &aEpoch) override
const UtOrbitalPropagatorBase & GetPropagator () const override
WsfSimulationGetSimulation () const override
WsfSpaceMoverBaseGetSpaceMover () const override
void InitiateMissionEvent (const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
void UpdateMissionEvent (const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
void CompleteMissionEvent (const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
void CancelMissionEvent (const UtCalendar &aEpoch, const WsfOrbitalEvent &aMissionEvent) const override
bool Maneuver (const UtCalendar &aEpoch, const UtVec3d &aCommandedDeltaV, UtVec3d &aActualDeltaV) const override
double GetAvailableDeltaV () const override
 Get the available delta-v in the executing context.
double GetRequiredDeltaV (double aDuration) const override
 Get the delta-v required to maneuver for the given aDuration.
bool PerformStagingOperation () const override
 Perform a staging operation.
std::string GetName () const override
 Get a name identifying this orbital mission context.
double GetManeuverDuration (const UtCalendar &aEpoch, const WsfOrbitalManeuver &aManeuver, double aDeltaV) const override
bool VerifyMission (verify::PreOperation aPreVerifyOp=verify::PreOperation{}, verify::PostOperation aPostVerifyOp=verify::PostOperation{})
Public Member Functions inherited from wsf::space::OrbitalMissionContext
 OrbitalMissionContext ()=default
virtual ~OrbitalMissionContext ()=default

Detailed Description

An orbital mission context used when verifying mission sequences during initialization.

This context is used to give a trial-run of the mission sequence during the process of initializing the simulation. Unlike the OrbitalMissionSimulationContext this context does not result in the modification of any simulation objects. Instead, copies of objects are made when this context is created, and changes resulting from the mission only affect those copies.

Constructor & Destructor Documentation

◆ OrbitalMissionVerificationContext()

wsf::space::OrbitalMissionVerificationContext::OrbitalMissionVerificationContext ( const WsfOrbitalManeuvering & aManeuvering,
const UtOrbitalPropagatorBase & aPropagator,
const WsfOrbitalMissionSequence & aMissionEvents,
const std::string & aPlatformName )
inline

◆ ~OrbitalMissionVerificationContext()

wsf::space::OrbitalMissionVerificationContext::~OrbitalMissionVerificationContext ( )
overridedefault

References Initialize().

Member Function Documentation

◆ CancelMissionEvent()

void wsf::space::OrbitalMissionVerificationContext::CancelMissionEvent ( const UtCalendar & aEpoch,
const WsfOrbitalEvent & aMissionEvent ) const
inlineoverridevirtual

Indicate that an orbital mission event was cancelled.

This method offers a means for this context to take action whenever a mission event is cancelled, such as triggering observers.

Parameters
aEpochThe epoch at which point a mission event was cancelled.
aMissionEventThe mission event being cancelled.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ CompleteMissionEvent()

void wsf::space::OrbitalMissionVerificationContext::CompleteMissionEvent ( const UtCalendar & aEpoch,
const WsfOrbitalEvent & aMissionEvent ) const
inlineoverridevirtual

Indicate that an orbital mission event was completed.

This method offers a means for this context to take action whenever a mission event is completed, such as triggering observers.

Parameters
aEpochThe epoch at which point a mission event was completed.
aMissionEventThe mission event being completed.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ GetAvailableDeltaV()

double wsf::space::OrbitalMissionVerificationContext::GetAvailableDeltaV ( ) const
overridevirtual

Get the available delta-v in the executing context.

Reimplemented from wsf::space::OrbitalMissionContext.

Referenced by VerifyMission().

◆ GetManeuverDuration()

double wsf::space::OrbitalMissionVerificationContext::GetManeuverDuration ( const UtCalendar & aEpoch,
const WsfOrbitalManeuver & aManeuver,
double aDeltaV ) const
overridevirtual

Return the duration of the given maneuver for the given delta-v in this context.

Parameters
aEpochThe epoch at which the maneuver is executing.
aManeuverThe maneuver in question.
aDeltaVThe delta-v to be expended in the maneuver.
Returns
The expected duration of the maneuver.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ GetName()

std::string wsf::space::OrbitalMissionVerificationContext::GetName ( ) const
overridevirtual

Get a name identifying this orbital mission context.

Reimplemented from wsf::space::OrbitalMissionContext.

Referenced by VerifyMission().

◆ GetPropagator()

const UtOrbitalPropagatorBase & wsf::space::OrbitalMissionVerificationContext::GetPropagator ( ) const
inlineoverridevirtual

Return the propagator representing the current state of the executing platform.

In some contexts, this will not be a propagator owned by any platform, but will instead be the propagator a platform would have were it executing the mission sequence during a simulation.

Returns
The propagator giving the current state during the execution of the mission.

Implements wsf::space::OrbitalMissionContext.

Referenced by Maneuver(), and VerifyMission().

◆ GetRequiredDeltaV()

double wsf::space::OrbitalMissionVerificationContext::GetRequiredDeltaV ( double aDuration) const
overridevirtual

Get the delta-v required to maneuver for the given aDuration.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ GetSimulation()

WsfSimulation * wsf::space::OrbitalMissionVerificationContext::GetSimulation ( ) const
inlineoverridevirtual

Return the simulation to which this context refers.

Some OrbitalMissionContexts will be associated with a simulation, either because the mission is executing in the simulation, or because the simulation is available as a source of information.

Returns
The simulation to which this context refers, or nullptr.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ GetSpaceMover()

WsfSpaceMoverBase * wsf::space::OrbitalMissionVerificationContext::GetSpaceMover ( ) const
inlineoverridevirtual

Return the space mover to which this context refers.

Some OrbitalMissionContexts will be associtated with a space mover, typically because the context is on in which a space mover's state is actually being updated by the mission sequence.

Returns
The space mover to which this context refers, or nullptr.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ Initialize()

bool wsf::space::OrbitalMissionVerificationContext::Initialize ( const UtCalendar & aEpoch)
overridevirtual

Initialize the context at the given aEpoch.

Parameters
aEpochThe epoch at which this context is being initialized.
Returns
true if initialization was successful, false otherwise.

Implements wsf::space::OrbitalMissionContext.

Referenced by WsfSpaceMoverBase::VerifyMission(), and ~OrbitalMissionVerificationContext().

◆ InitiateMissionEvent()

void wsf::space::OrbitalMissionVerificationContext::InitiateMissionEvent ( const UtCalendar & aEpoch,
const WsfOrbitalEvent & aMissionEvent ) const
inlineoverridevirtual

Indicate that an orbital mission event was initiated.

This method offers a means for this context to take action whenever a mission event is initiated, such as triggering observers.

Parameters
aEpochThe epoch at which point a mission event was initiated.
aMissionEventThe mission event being initiated.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ Maneuver()

bool wsf::space::OrbitalMissionVerificationContext::Maneuver ( const UtCalendar & aEpoch,
const UtVec3d & aCommandedDeltaV,
UtVec3d & aActualDeltaV ) const
overridevirtual

Command a maneuver at the given epoch.

Indicate to the context that a maneuver should occur at the given aEpoch and there should be a change in ECI velocity of the given aCommandedDeltaV. The actual execution of the maneuver may be unable to achieve the commanded delta-v, so the actually achieved delta-v is returned via aActualDeltaV. If the maneuver was unsuccessful completely, false is returned.

Parameters
aEpochThe epoch at which the maneuver is to occur.
aCommandedDeltaVThe delta-v commanded for the maneuver.
aActualDeltaV[out] The actual delta-v that was possible.
Returns
true if the maneuver was successful, false otherwise.

Reimplemented from wsf::space::OrbitalMissionContext.

References GetPropagator().

◆ PerformStagingOperation()

bool wsf::space::OrbitalMissionVerificationContext::PerformStagingOperation ( ) const
overridevirtual

Perform a staging operation.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ Update()

void wsf::space::OrbitalMissionVerificationContext::Update ( const UtCalendar & aEpoch)
overridevirtual

Update to the given aEpoch.

This typically will update member variables for those subclasses that hold any.

Parameters
aEpochThe epoch to which to update this context.

Implements wsf::space::OrbitalMissionContext.

Referenced by VerifyMission().

◆ UpdateMissionEvent()

void wsf::space::OrbitalMissionVerificationContext::UpdateMissionEvent ( const UtCalendar & aEpoch,
const WsfOrbitalEvent & aMissionEvent ) const
inlineoverridevirtual

Indicate that an orbital mission event was updated.

This method offers a means for this context to take action whenever a mission event is updated, such as triggering observers.

Parameters
aEpochThe epoch at which point a mission event was updated.
aMissionEventThe mission event being updated.

Reimplemented from wsf::space::OrbitalMissionContext.

◆ VerifyMission()

bool wsf::space::OrbitalMissionVerificationContext::VerifyMission ( verify::PreOperation aPreVerifyOp = verify::PreOperation{},
verify::PostOperation aPostVerifyOp = verify::PostOperation{} )

This method verifies the mission with which this context was created.

This driver routine manages the trial execution of the mission sequence, and reports on the ultimate verification of the mission sequence.

Parameters
aPreVerifyOpAn operation called before each event is verified.
aPostVerifyOpAn operation called after each event is verified.
Returns
true if the mission sequence passed verification, false otherwise.

References wsf::space::verify::cFAIL, wsf::space::verify::cUNVERIFIABLE, GetAvailableDeltaV(), GetName(), GetPropagator(), WsfOrbitalEvent::GetStartTime(), WsfObject::GetType(), and Update().

Referenced by WsfSpaceMoverBase::VerifyMission().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved