Class FieldAdjustableEmitterSignalTimer<T extends CalculusFieldElement<T>>

java.lang.Object
org.orekit.signal.FieldAdjustableEmitterSignalTimer<T>

public class FieldAdjustableEmitterSignalTimer<T extends CalculusFieldElement<T>> extends Object
Class for computing signal time of travel with an adjustable emitter and a fixed receiver's position and date. The delay is calculated via a fixed-point algorithm with customizable settings (even enabling instantaneous transmission). Note that a couple of iterations are usually enough for Earth orbits.
Since:
14.0
Author:
Romain Serra
See Also:
  • Field Details

    • C_RECIPROCAL

      protected static final double C_RECIPROCAL
      Reciprocal for light speed.
      See Also:
  • Constructor Details

    • FieldAdjustableEmitterSignalTimer

      public FieldAdjustableEmitterSignalTimer(FieldPVCoordinatesProvider<T> adjustableEmitterPVProvider)
      Constructor with default iteration settings.
      Parameters:
      adjustableEmitterPVProvider - adjustable emitter
    • FieldAdjustableEmitterSignalTimer

      public FieldAdjustableEmitterSignalTimer(FieldPVCoordinatesProvider<T> adjustableEmitterPVProvider, ConvergenceChecker<T> convergenceChecker)
      Constructor.
      Parameters:
      adjustableEmitterPVProvider - adjustable emitter
      convergenceChecker - convergence checker for fixed-point algorithm
  • Method Details

    • computeEmissionCondition

      public FieldSignalEmissionCondition<T> computeEmissionCondition(FieldSignalReceptionCondition<T> receptionCondition, FieldAbsoluteDate<T> approxEmissionDate)
      Compute the signal emission condition on a link leg (typically downlink or uplink).
      Parameters:
      receptionCondition - signal reception condition
      approxEmissionDate - approximate emission date
      Returns:
      emission condition
    • computeDelay

      public T computeDelay(FieldSignalReceptionCondition<T> receptionCondition)
      Compute propagation delay on a link leg (typically downlink or uplink) without custom guess.
      Parameters:
      receptionCondition - signal reception condition
      Returns:
      positive delay between signal emission and signal reception dates
    • computeDelay

      public T computeDelay(FieldSignalReceptionCondition<T> receptionCondition, FieldAbsoluteDate<T> approxEmissionDate)
      Compute propagation delay on a link leg (typically downlink or uplink).
      Parameters:
      receptionCondition - signal reception condition
      approxEmissionDate - approximate emission date
      Returns:
      positive delay between signal emission and signal reception dates
    • computeShift

      protected T computeShift(T offset, T delay)
      Computes the time shift.
      Parameters:
      offset - time offset
      delay - time delay
      Returns:
      time shift to use in computation
    • getConvergenceChecker

      public ConvergenceChecker<T> getConvergenceChecker()
      Getter for the convergence checker.
      Returns:
      checker
    • compute

      protected T compute(FieldPVCoordinatesProvider<T> pvCoordinatesProvider, T initialOffset, FieldVector3D<T> fixedPosition, FieldAbsoluteDate<T> guessDate, Frame frame)
      Compute propagation delay on a link leg (typically downlink or uplink). The max. iteration number and convergence checker can be tweaked to emulate no-delay a.k.a. instantaneous transmission.
      Parameters:
      pvCoordinatesProvider - adjustable emitter/receiver
      initialOffset - guess for the time off set
      fixedPosition - fixed receiver/emitter position
      guessDate - guess for emission/reception date
      frame - Inertial frame in which receiver/emitter is defined.
      Returns:
      positive delay between signal emission and signal reception dates