/** * Get the value of the axis on a joystick. * This depends on the mapping of the joystick connected to the specified port. * * @param stick The joystick to read. * @param axis The analog axis value to read from the joystick. * @return The value of the axis on the joystick. */ float DriverStation::GetStickAxis(uint32_t stick, uint32_t axis) { if (stick >= kJoystickPorts) { wpi_setWPIError(BadJoystickIndex); return 0; } if (axis >= m_joystickAxes[stick].count) { if (axis >= kMaxJoystickAxes) wpi_setWPIError(BadJoystickAxis); else ReportJoystickUnpluggedError("WARNING: Joystick Axis missing, check if all controllers are plugged in\n"); return 0.0f; } int8_t value = m_joystickAxes[stick].axes[axis]; if(value < 0) { return value / 128.0f; } else { return value / 127.0f; } }
/** * The state of one joystick button. Button indexes begin at 1. * * @param stick The joystick to read. * @param button The button index, beginning at 1. * @return The state of the joystick button. */ bool DriverStation::GetStickButton(uint32_t stick, uint8_t button) { if (stick >= kJoystickPorts) { wpi_setWPIError(BadJoystickIndex); return false; } if (button > m_joystickButtons[stick].count) { ReportJoystickUnpluggedError( "WARNING: Joystick Button missing, check if all controllers are " "plugged in\n"); return false; } if (button == 0) { ReportJoystickUnpluggedError( "ERROR: Button indexes begin at 1 in WPILib for C++ and Java"); return false; } return ((0x1 << (button - 1)) & m_joystickButtons[stick].buttons) != 0; }
/** * Get the state of a POV on the joystick. * * @return the angle of the POV in degrees, or -1 if the POV is not pressed. */ int DriverStation::GetStickPOV(uint32_t stick, uint32_t pov) { if (stick >= kJoystickPorts) { wpi_setWPIError(BadJoystickIndex); return -1; } if (pov >= m_joystickPOVs[stick].count) { if (pov >= kMaxJoystickPOVs) wpi_setWPIError(BadJoystickAxis); else ReportJoystickUnpluggedError("WARNING: Joystick POV missing, check if all controllers are plugged in\n"); return -1; } return m_joystickPOVs[stick].povs[pov]; }