Class Relay

All Implemented Interfaces:
Sendable, AutoCloseable

public class Relay
extends MotorSafety
implements Sendable, AutoCloseable
Class for VEX Robotics Spike style relay outputs. Relays are intended to be connected to Spikes or similar relays. The relay channels controls a pair of channels that are either both off, one on, the other on, or both on. This translates into two Spike outputs at 0v, one at 12v and one at 0v, one at 0v and the other at 12v, or two Spike outputs at 12V. This allows off, full forward, or full reverse control of motors without variable speed. It also allows the two channels (forward and reverse) to be used independently for something that does not care about voltage polarity (like a solenoid).
  • Constructor Details

    • Relay

      public Relay​(int channel, Relay.Direction direction)
      Relay constructor given a channel.
      Parameters:
      channel - The channel number for this relay (0 - 3).
      direction - The direction that the Relay object will control.
    • Relay

      public Relay​(int channel)
      Relay constructor given a channel, allowing both directions.
      Parameters:
      channel - The channel number for this relay (0 - 3).
  • Method Details

    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • set

      public void set​(Relay.Value value)
      Set the relay state.

      Valid values depend on which directions of the relay are controlled by the object.

      When set to kBothDirections, the relay can be set to any of the four states: 0v-0v, 12v-0v, 0v-12v, 12v-12v

      When set to kForwardOnly or kReverseOnly, you can specify the constant for the direction, or you can simply specify kOff and kOn. Using only kOff and kOn is recommended.

      Parameters:
      value - The state to set the relay.
    • get

      public Relay.Value get()
      Get the Relay State.

      Gets the current state of the relay.

      When set to kForwardOnly or kReverseOnly, value is returned as kOn/kOff not kForward/kReverse (per the recommendation in Set)

      Returns:
      The current state of the relay as a Relay::Value
    • getChannel

      public int getChannel()
      Get the channel number.
      Returns:
      The channel number.
    • stopMotor

      public void stopMotor()
      Description copied from class: MotorSafety
      Called to stop the motor when the timeout expires.
      Specified by:
      stopMotor in class MotorSafety
    • getDescription

      Description copied from class: MotorSafety
      Returns a description to print when an error occurs.
      Specified by:
      getDescription in class MotorSafety
      Returns:
      Description to print when an error occurs.
    • setDirection

      public void setDirection​(Relay.Direction direction)
      Set the Relay Direction.

      Changes which values the relay can be set to depending on which direction is used

      Valid inputs are kBothDirections, kForwardOnly, and kReverseOnly

      Parameters:
      direction - The direction for the relay to operate in
    • initSendable

      public void initSendable​(SendableBuilder builder)
      Description copied from interface: Sendable
      Initializes this Sendable object.
      Specified by:
      initSendable in interface Sendable
      Parameters:
      builder - sendable builder