Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## PER.rover
Class DetectMotionAction

    java.lang.Object
      PER.rover.DetectMotionAction

All Implemented Interfaces:
  Action, java.io.Serializable

public class DetectMotionAction
extends java.lang.Object
implements Action

This Action makes it easy to detect motion. The version of the Stargate/Stayton code on the robot you use must be at least 2.0.0.

While trying to detect motion, the rover is constantly taking pictures at 176x144. It adds up the brightness in 16x16 pixel blocks. The rover sends back the average difference between successive frames for all of the blocks. The DetectMotionAction waits until the average difference is above the defined threshold for at least a minimum number of blocks, or the specified timeout is exceeded. The Action is considered a success if motion is detected before the timeout is reached.

See Also:
  Serialized Form

Constructor Summary
`DetectMotionAction(int timeToWait)` Creates a new instance of DetectMotionAction.
`DetectMotionAction(int timeToWait, int threshold, int minimumBlocks)` Creates a new instance of DetectMotionAction Waits to detect motion in the specified time interval using user-defined parameters.

Method Summary
`boolean` | `doAction(Rover r)` Tries to start the action.
`long` | `getImageUpdateTime()` Lets you know when the last image was taken by this action.
`java.awt.image.BufferedImage` | `getRecentImage()` Returns the most recent image taken by this Action.
`int` | `getReturnValue()` The return value of the Action.
`java.lang.String` | `getShortSummary()` Provides a shortened version of the summary returned by getSummary.
`java.lang.String` | `getSummary()` Provides a textual explanation of the Action, such as "turn 90 degrees"
`int` | `getTime()` Gets the maximum time that it will try to detect motion for in milliseconds.
`int` | `getTimeRemaining()` How much time until the action finishes (in milliseconds), if it has already started.
`boolean` | `isCompleted()` Whether the action has completed.
`boolean` | `isSuccess()` For this action, success is considered detecting motion.
`void` | `kill()` Emergency stop - end the action immediately, if it's running.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DetectMotionAction

    public DetectMotionAction(int timeToWait)

  Creates a new instance of DetectMotionAction. Waits to detect motion in the specified time interval using default parameters. By default, 5 blocks need to change in brightness by at least 8 for it to be considered motion.

Parameters:
  `timeToWait` - How many milliseconds to detect motion for.

### DetectMotionAction

    public DetectMotionAction(int timeToWait,
                              int threshold,
                              int minimumBlocks)

  Creates a new instance of DetectMotionAction Waits to detect motion in the specified time interval using user-defined parameters.

Parameters:
  `timeToWait` - How many milliseconds to detect motion for.
  `threshold` - How much the brightness must change in a block for it to be considered motion.
  `minimumBlocks` - How many blocks must be above the threshold for the Action to terminate.

Method Detail

### doAction

    public boolean doAction(Rover r)

  Description copied from interface: `Action`
  Tries to start the action. Returns whether the action started.

  Specified by:
    `doAction` in interface `Action`

### getTime

    public int getTime()

  Gets the maximum time that it will try to detect motion for in milliseconds.

  Specified by:
    `getTime` in interface `Action`
  Returns:
    If the action has not completed, the amount of time the user allowed the action to run is returned. If the action has succeeded, the actual time run is returned.

### getSummary

    public java.lang.String getSummary()

  Description copied from interface: `Action`
  Provides a textual explanation of the Action, such as "turn 90 degrees"

  Specified by:
    `getSummary` in interface `Action`

### getShortSummary

    public java.lang.String getShortSummary()

  Description copied from interface: `Action`
  Provides a shortened version of the summary returned by getSummary. For example, getSummary may return something like "Turn left and drive about 39 inches toward the red landmark," whereas getShortSummary might just return "Drive toward a landmark."

  Specified by:
    `getShortSummary` in interface `Action`

### getReturnValue

    public int getReturnValue()

  Description copied from interface: `Action`
  The return value of the Action. Zero is a success. Negative implies one of this class's constants. Other values should be interpreted as appropriate.

  Specified by:
    `getReturnValue` in interface `Action`
  See Also:
    `RoverState`, `ActionConstants`

### isSuccess

    public boolean isSuccess()

  For this action, success is considered detecting motion. This is only defined if isCompleted() returns true.

  Specified by:
    `isSuccess` in interface `Action`
  Returns:
    true only if motion was detected in the time interval.

### isCompleted

    public boolean isCompleted()

  Description copied from interface: `Action`
  Whether the action has completed. Undefined until doAction has been called.

  Specified by:
    `isCompleted` in interface `Action`

### kill

    public void kill()

  Description copied from interface: `Action`
  Emergency stop - end the action immediately, if it's running.

  Specified by:
    `kill` in interface `Action`

### getTimeRemaining

    public int getTimeRemaining()

  Description copied from interface: `Action`
  How much time until the action finishes (in milliseconds), if it has already started. Undefined behavior if the action has not yet begun, or has finished.

  Specified by:
    `getTimeRemaining` in interface `Action`

### getImageUpdateTime

    public long getImageUpdateTime()

  Description copied from interface: `Action`
  Lets you know when the last image was taken by this action. If the Action does not take pictures or the first picture has not yet been taken, will return 0.

  Specified by:
    `getImageUpdateTime` in interface `Action`
  Returns:
    the system time in milliseconds when the last image was taken or 0 if no images have been taken

### getRecentImage

    public java.awt.image.BufferedImage getRecentImage()

  Description copied from interface: `Action`
  Returns the most recent image taken by this Action. The image will be null if the Action does not take pictures or the first picture has not yet been taken.

  Specified by:
    `getRecentImage` in interface `Action`
  Returns:
    the most recent picture taken by the Action.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD