# Package edu.wpi.first.wpilibj

The WPI Robotics library (WPILibJ) is a set of Java classes that interfaces to the hardware in the FRC control system and your robot.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  CANSpeedController |
  CANSpeedController.ControlMode | Mode determines how the motor is controlled, used internally.
  CounterBase | Interface for counting the number of ticks on a digital input channel.
  HLUsageReporting.Interface |
  MotorSafety | Shuts off motors when their outputs aren't updated often enough.
  NamedSendable | The interface for sendable objects that gives the sendable a default name in the Smart Dashboard.
  PIDController.Tolerance | Tolerance is the type of tolerance used to specify if the PID controller is on target.
  PIDInterface |
  PIDOutput | This interface allows PIDController to write it's results to its output.
  PIDSource | This interface allows for PIDController to automatically read from this object.
  Sendable | The base interface for objects that can be sent over the network through network tables.
  SpeedController | Interface for speed controlling devices.
  Timer.Interface |
  Timer.StaticInterface |

- Class Summary
  Class | Description
  --- | ---
  AccumulatorResult | Structure for holding the values stored in an accumulator.
  ADXL345_I2C | ADXL345 I2C Accelerometer.
  ADXL345_I2C.AllAxes |
  ADXL345_SPI | ADXL345 SPI Accelerometer.
  ADXL345_SPI.AllAxes |
  ADXL362 | ADXL362 SPI Accelerometer.
  ADXL362.AllAxes |
  ADXRS450_Gyro | Use a rate gyro to return the robots heading relative to a starting position.
  AnalogAccelerometer | Handle operation of an analog accelerometer.
  AnalogGyro | Use a rate gyro to return the robots heading relative to a starting position.
  AnalogInput | Analog channel class.
  AnalogOutput | Analog output class.
  AnalogPotentiometer | Class for reading analog potentiometers.
  AnalogTrigger | Class for creating and configuring Analog Triggers.
  AnalogTriggerOutput | Class to represent a specific output from an analog trigger.
  BuiltInAccelerometer | Built-in accelerometer.
  CameraServer | Singleton class for creating and keeping camera servers.
  CircularBuffer | This is a simple circular buffer so we don't need to "bucket brigade" copy old values.
  Compressor | Class for operating a compressor connected to a PCM (Pneumatic Control Module).
  ControllerPower |
  Counter | Class for counting the number of ticks on a digital input channel.
  DigitalGlitchFilter | Class to enable glitch filtering on a set of digital inputs.
  DigitalInput | Class to read a digital input.
  DigitalOutput | Class to write digital outputs.
  DigitalSource | DigitalSource Interface.
  DoubleSolenoid | DoubleSolenoid class for running 2 channels of high voltage Digital Output on the PCM.
  DriverStation | Provide access to the network communication data to / from the Driver Station.
  Encoder | Class to read quadrature encoders.
  GamepadBase | Deprecated Inherit directly from GenericHID instead.
  GearTooth | Alias for counter class.
  GenericHID | GenericHID Interface.
  GyroBase | GyroBase is the common base class for Gyro implementations such as AnalogGyro.
  HLUsageReporting | Support for high level usage reporting.
  HLUsageReporting.Null |
  I2C | I2C bus interface class.
  InterruptableSensorBase | Base for sensors to be used with interrupts.
  InterruptHandlerFunction<T> | It is recommended that you use this class in conjunction with classes from `java.util.concurrent.atomic` as these objects are all thread safe.
  IterativeRobot | IterativeRobot implements the IterativeRobotBase robot program framework.
  IterativeRobotBase | IterativeRobotBase implements a specific type of robot program framework, extending the RobotBase class.
  Jaguar | Texas Instruments / Vex Robotics Jaguar Speed Controller as a PWM device.
  Joystick | Handle input from standard Joysticks connected to the Driver Station.
  JoystickBase | Deprecated Inherit directly from GenericHID instead.
  MotorSafetyHelper | The MotorSafetyHelper object is constructed for every object that wants to implement the Motor Safety protocol.
  Notifier |
  PIDController | Class implements a PID Control Loop.
  PowerDistributionPanel | Class for getting voltage, current, temperature, power and energy from the Power Distribution Panel over CAN.
  Preferences | The preferences class provides a relatively simple way to save important values to the roboRIO to access the next time the roboRIO is booted.
  PWM | Class implements the PWM generation in the FPGA.
  PWMConfigDataResult | Structure for holding the config data result for PWM.
  PWMSpeedController | Common base class for all PWM Speed Controllers.
  PWMTalonSRX | Cross the Road Electronics (CTRE) Talon SRX Speed Controller with PWM control.
  Relay | Class for VEX Robotics Spike style relay outputs.
  Resource | Track resources in the program.
  RobotBase | Implement a Robot Program framework.
  RobotDrive | Deprecated Use DifferentialDrive or MecanumDrive classes instead.
  RobotState |
  SafePWM | Manages a PWM object.
  SampleRobot | A simple robot base class that knows the standard FRC competition states (disabled, autonomous, or operator controlled).
  SD540 | Mindsensors SD540 Speed Controller.
  SensorBase | Base class for all sensors.
  SerialPort | Driver for the RS-232 serial port on the roboRIO.
  Servo | Standard hobby style servo.
  Solenoid | Solenoid class for running high voltage Digital Output on the PCM.
  SolenoidBase | SolenoidBase class is the common base class for the `Solenoid` and `DoubleSolenoid` classes.
  Spark | REV Robotics SPARK Speed Controller.
  SpeedControllerGroup | Allows multiple `SpeedController` objects to be linked together.
  SPI | Represents a SPI bus port.
  Talon | Cross the Road Electronics (CTRE) Talon and Talon SR Speed Controller.
  Threads |
  TimedRobot | TimedRobot implements the IterativeRobotBase robot program framework.
  Timer |
  Ultrasonic | Ultrasonic rangefinder class.
  Utility | Contains global utility functions.
  Victor | VEX Robotics Victor 888 Speed Controller The Vex Robotics Victor 884 Speed Controller can also be used with this class but may need to be calibrated per the Victor 884 user manual.
  VictorSP | VEX Robotics Victor SP Speed Controller.
  XboxController | Handle input from Xbox 360 or Xbox One controllers connected to the Driver Station.

- Enum Summary
  Enum | Description
  --- | ---
  ADXL345_I2C.Axes |
  ADXL345_SPI.Axes |
  ADXL362.Axes |
  AnalogTriggerOutput.AnalogTriggerType | Defines the state in which the AnalogTrigger triggers.
  Counter.Mode | Mode determines how and what the counter counts.
  CounterBase.EncodingType | The number of edges for the counterbase to increment or decrement on.
  DoubleSolenoid.Value | Possible values for a DoubleSolenoid.
  DriverStation.Alliance | The robot alliance that the robot is a part of.
  Encoder.IndexingType |
  GenericHID.Hand | Which hand the Human Interface Device is associated with.
  GenericHID.HIDType |
  GenericHID.RumbleType | Represents a rumble output on the JoyStick.
  I2C.Port |
  InterruptableSensorBase.WaitResult |
  Joystick.AxisType | Represents an analog axis on a joystick.
  Joystick.ButtonType | Represents a digital button on a joystick.
  PIDSourceType | A description for the type of output value to provide to a PIDController.
  PWM.PeriodMultiplier | Represents the amount to multiply the minimum servo-pulse pwm period by.
  Relay.Direction | The Direction(s) that a relay is configured to operate in.
  Relay.Value | The state to drive a Relay to.
  RobotDrive.MotorType | The location of a motor on the robot for the purpose of driving.
  SerialPort.FlowControl | Represents what type of flow control to use for serial communication.
  SerialPort.Parity | Represents the parity to use for serial communications.
  SerialPort.Port |
  SerialPort.StopBits | Represents the number of stop bits to use for Serial Communication.
  SerialPort.WriteBufferMode | Represents which type of buffer mode to use when writing to a serial m_port.
  SPI.Port |
  Ultrasonic.Unit | The units to return when PIDGet is called.

- Exception Summary
  Exception | Description
  --- | ---

## Package edu.wpi.first.wpilibj Description

The WPI Robotics library (WPILibJ) is a set of Java classes that interfaces to the hardware in the FRC control system and your robot. There are classes to handle sensors, motors, the driver station, and a number of other utility functions like timing and field management. The library is designed to:

- Deal with all the low level interfacing to these components so you can concentrate on solving this year's "robot problem". This is a philosophical decision to let you focus on the higher-level design of your robot rather than deal with the details of the processor and the operating system.
- Understand everything at all levels by making the full source code of the library available. You can study (and modify) the algorithms used by the gyro class for oversampling and integration of the input signal or just ask the class for the current robot heading. You can work at any level.