Class MagneticFluxDensityTriadStaticIntervalDetectorTest

java.lang.Object
com.irurueta.navigation.inertial.calibration.intervals.MagneticFluxDensityTriadStaticIntervalDetectorTest
All Implemented Interfaces:
MagneticFluxDensityTriadStaticIntervalDetectorListener, TriadStaticIntervalDetectorListener<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,MagneticFluxDensityTriadStaticIntervalDetector>

class MagneticFluxDensityTriadStaticIntervalDetectorTest extends Object implements MagneticFluxDensityTriadStaticIntervalDetectorListener
  • Field Details

    • TIME_INTERVAL_SECONDS

      private static final double TIME_INTERVAL_SECONDS
      See Also:
    • MIN_HARD_IRON

      private static final double MIN_HARD_IRON
      See Also:
    • MAX_HARD_IRON

      private static final double MAX_HARD_IRON
      See Also:
    • MIN_SOFT_IRON

      private static final double MIN_SOFT_IRON
      See Also:
    • MAX_SOFT_IRON

      private static final double MAX_SOFT_IRON
      See Also:
    • MIN_ANGLE_DEGREES

      private static final double MIN_ANGLE_DEGREES
      See Also:
    • MAX_ANGLE_DEGREES

      private static final double MAX_ANGLE_DEGREES
      See Also:
    • MIN_LATITUDE_DEGREES

      private static final double MIN_LATITUDE_DEGREES
      See Also:
    • MAX_LATITUDE_DEGREES

      private static final double MAX_LATITUDE_DEGREES
      See Also:
    • MIN_LONGITUDE_DEGREES

      private static final double MIN_LONGITUDE_DEGREES
      See Also:
    • MAX_LONGITUDE_DEGREES

      private static final double MAX_LONGITUDE_DEGREES
      See Also:
    • MIN_HEIGHT_METERS

      private static final double MIN_HEIGHT_METERS
      See Also:
    • MAX_HEIGHT_METERS

      private static final double MAX_HEIGHT_METERS
      See Also:
    • MAGNETOMETER_NOISE_STD

      private static final double MAGNETOMETER_NOISE_STD
      See Also:
    • MIN_DELTA_POS_METERS

      private static final double MIN_DELTA_POS_METERS
      See Also:
    • MAX_DELTA_POS_METERS

      private static final double MAX_DELTA_POS_METERS
      See Also:
    • MIN_DELTA_ANGLE_DEGREES

      private static final double MIN_DELTA_ANGLE_DEGREES
      See Also:
    • MAX_DELTA_ANGLE_DEGREES

      private static final double MAX_DELTA_ANGLE_DEGREES
      See Also:
    • ABSOLUTE_ERROR

      private static final double ABSOLUTE_ERROR
      See Also:
    • SMALL_ABSOLUTE_ERROR

      private static final double SMALL_ABSOLUTE_ERROR
      See Also:
    • START_CALENDAR

      private static final Calendar START_CALENDAR
    • END_CALENDAR

      private static final Calendar END_CALENDAR
    • START_TIMESTAMP_MILLIS

      private static final long START_TIMESTAMP_MILLIS
    • END_TIMESTAMP_MILLIS

      private static final long END_TIMESTAMP_MILLIS
    • initializationStarted

      private int initializationStarted
    • initializationCompleted

      private int initializationCompleted
    • error

      private int error
    • staticIntervalDetected

      private int staticIntervalDetected
    • dynamicIntervalDetected

      private int dynamicIntervalDetected
    • reset

      private int reset
    • errorAccumulatedNoiseLevel

      private double errorAccumulatedNoiseLevel
    • errorInstantaneousNoiseLevel

      private double errorInstantaneousNoiseLevel
    • errorReason

  • Constructor Details

    • MagneticFluxDensityTriadStaticIntervalDetectorTest

      MagneticFluxDensityTriadStaticIntervalDetectorTest()
  • Method Details

    • testConstructor1

      @Test void testConstructor1()
    • testConstructor2

      @Test void testConstructor2()
    • testGetSetWindowSize

      @Test void testGetSetWindowSize() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetInitialStaticSamples

      @Test void testGetSetInitialStaticSamples() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetThresholdFactor

      @Test void testGetSetThresholdFactor() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetInstantaneousNoiseLevelFactor

      @Test void testGetSetInstantaneousNoiseLevelFactor() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetBaseNoiseLevelAbsoluteThreshold

      @Test void testGetSetBaseNoiseLevelAbsoluteThreshold() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetBaseNoiseLevelAbsoluteThresholdAsMeasurement

      @Test void testGetSetBaseNoiseLevelAbsoluteThresholdAsMeasurement() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetListener

      @Test void testGetSetListener() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetTimeInterval1

      @Test void testGetSetTimeInterval1() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testGetSetTimeInterval2

      @Test void testGetSetTimeInterval2() throws com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.LockedException
    • testProcessWithSuccessfulInitializationStaticAndDynamicPeriodAndReset1

      @Test void testProcessWithSuccessfulInitializationStaticAndDynamicPeriodAndReset1() throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, IOException, com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      IOException
      com.irurueta.navigation.LockedException
    • testProcessWithSuccessfulInitializationStaticAndDynamicPeriodAndReset2

      @Test void testProcessWithSuccessfulInitializationStaticAndDynamicPeriodAndReset2() throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, IOException, com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      IOException
      com.irurueta.navigation.LockedException
    • testProcessWithSuccessfulInitializationStaticAndDynamicPeriodAndReset3

      @Test void testProcessWithSuccessfulInitializationStaticAndDynamicPeriodAndReset3() throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, IOException, com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      IOException
      com.irurueta.navigation.LockedException
    • testProcessWithExcessiveOverallNoiseDuringInitialization

      @Test void testProcessWithExcessiveOverallNoiseDuringInitialization() throws IOException, com.irurueta.navigation.LockedException
      Throws:
      IOException
      com.irurueta.navigation.LockedException
    • testProcessWithSuddenMotionDuringInitialization

      @Test void testProcessWithSuddenMotionDuringInitialization() throws com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException, IOException, com.irurueta.navigation.LockedException
      Throws:
      com.irurueta.navigation.frames.InvalidSourceAndDestinationFrameTypeException
      IOException
      com.irurueta.navigation.LockedException
    • onInitializationStarted

      public void onInitializationStarted(MagneticFluxDensityTriadStaticIntervalDetector detector)
      Specified by:
      onInitializationStarted in interface TriadStaticIntervalDetectorListener<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,MagneticFluxDensityTriadStaticIntervalDetector>
    • onInitializationCompleted

      public void onInitializationCompleted(MagneticFluxDensityTriadStaticIntervalDetector detector, double baseNoiseLevel)
      Specified by:
      onInitializationCompleted in interface TriadStaticIntervalDetectorListener<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,MagneticFluxDensityTriadStaticIntervalDetector>
    • onError

      public void onError(MagneticFluxDensityTriadStaticIntervalDetector detector, double accumulatedNoiseLevel, double instantaneousNoiseLevel, TriadStaticIntervalDetector.ErrorReason reason)
      Specified by:
      onError in interface TriadStaticIntervalDetectorListener<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,MagneticFluxDensityTriadStaticIntervalDetector>
    • onStaticIntervalDetected

      public void onStaticIntervalDetected(MagneticFluxDensityTriadStaticIntervalDetector detector, double instantaneousAvgX, double instantaneousAvgY, double instantaneousAvgZ, double instantaneousStdX, double instantaneousStdY, double instantaneousStdZ)
      Specified by:
      onStaticIntervalDetected in interface TriadStaticIntervalDetectorListener<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,MagneticFluxDensityTriadStaticIntervalDetector>
    • onDynamicIntervalDetected

      public void onDynamicIntervalDetected(MagneticFluxDensityTriadStaticIntervalDetector detector, double instantaneousAvgX, double instantaneousAvgY, double instantaneousAvgZ, double instantaneousStdX, double instantaneousStdY, double instantaneousStdZ, double accumulatedAvgX, double accumulatedAvgY, double accumulatedAvgZ, double accumulatedStdX, double accumulatedStdY, double accumulatedStdZ)
      Specified by:
      onDynamicIntervalDetected in interface TriadStaticIntervalDetectorListener<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,MagneticFluxDensityTriadStaticIntervalDetector>
    • onReset

      public void onReset(MagneticFluxDensityTriadStaticIntervalDetector detector)
      Specified by:
      onReset in interface TriadStaticIntervalDetectorListener<com.irurueta.units.MagneticFluxDensityUnit,com.irurueta.units.MagneticFluxDensity,MagneticFluxDensityTriad,MagneticFluxDensityTriadStaticIntervalDetector>
    • reset

      private void reset()
    • checkLocked

      private void checkLocked(MagneticFluxDensityTriadStaticIntervalDetector detector)
    • generateTriad

      private static MagneticFluxDensityTriad generateTriad(double[] hardIron, com.irurueta.algebra.Matrix softIron, WMMEarthMagneticFluxDensityEstimator wmmEstimator, com.irurueta.statistics.GaussianRandomizer noiseRandomizer, Date timestamp, com.irurueta.navigation.frames.NEDPosition position, com.irurueta.navigation.frames.CoordinateTransformation cnb)
    • generateBodyC

      private static com.irurueta.navigation.frames.CoordinateTransformation generateBodyC(com.irurueta.statistics.UniformRandomizer randomizer)
    • generateMeasuredMagneticFluxDensity

      private static BodyMagneticFluxDensity generateMeasuredMagneticFluxDensity(BodyMagneticFluxDensity input, double[] hardIron, com.irurueta.algebra.Matrix softIron)
    • generateHardIron

      private static double[] generateHardIron(com.irurueta.statistics.UniformRandomizer randomizer)
    • generateSoftIronGeneral

      private static com.irurueta.algebra.Matrix generateSoftIronGeneral()
    • createPosition

      private static com.irurueta.navigation.frames.NEDPosition createPosition(com.irurueta.statistics.UniformRandomizer randomizer)
    • createTimestamp

      private static long createTimestamp(com.irurueta.statistics.UniformRandomizer randomizer)