Class FieldAdjustableReceiverSignalTimer<T extends CalculusFieldElement<T>>

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

public class FieldAdjustableReceiverSignalTimer<T extends CalculusFieldElement<T>> extends Object
Class for computing signal time of travel with an adjustable receiver and a fixed emitter'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

    • FieldAdjustableReceiverSignalTimer

      public FieldAdjustableReceiverSignalTimer(FieldPVCoordinatesProvider<T> adjustableReceiverPVProvider)
      Constructor with default iteration settings.
      Parameters:
      adjustableReceiverPVProvider - adjustable receiver
    • FieldAdjustableReceiverSignalTimer

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

    • computeReceptionCondition

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

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

      public T computeDelay(FieldSignalEmissionCondition<T> emissionCondition, FieldAbsoluteDate<T> approxReceptionDate)
      Compute propagation delay on a link leg (typically downlink or uplink).
      Parameters:
      emissionCondition - signal emission condition
      approxReceptionDate - approximate reception 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