79 lines
2.9 KiB
Java
79 lines
2.9 KiB
Java
package org.firstinspires.ftc.robotcontroller.external.samples;
|
|
|
|
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
|
|
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
|
|
import com.qualcomm.robotcore.eventloop.opmode.Disabled;
|
|
|
|
import org.firstinspires.ftc.robotcore.external.Telemetry;
|
|
|
|
/**
|
|
* This sample illustrates using the touchpad feature found on some gamepads.
|
|
*
|
|
* The Sony PS4 gamepad can detect two distinct touches on the central touchpad.
|
|
* Other gamepads with different touchpads may provide mixed results.
|
|
*
|
|
* The touchpads are accessed through the standard gamepad1 and gamepad2 objects.
|
|
* Several new members were added to the Gamepad class in FTC SDK Rev 7
|
|
*
|
|
* .touchpad_finger_1 returns true if at least one finger is detected.
|
|
* .touchpad_finger_1_x finger 1 X coordinate. Valid if touchpad_finger_1 is true
|
|
* .touchpad_finger_1_y finger 1 Y coordinate. Valid if touchpad_finger_1 is true
|
|
*
|
|
* .touchpad_finger_2 returns true if a second finger is detected
|
|
* .touchpad_finger_2_x finger 2 X coordinate. Valid if touchpad_finger_2 is true
|
|
* .touchpad_finger_2_y finger 2 Y coordinate. Valid if touchpad_finger_2 is true
|
|
*
|
|
* Finger touches are reported with an X and Y coordinate in following coordinate system.
|
|
*
|
|
* 1) X is the Horizontal axis, and Y is the vertical axis
|
|
* 2) The 0,0 origin is at the center of the touchpad.
|
|
* 3) 1.0, 1.0 is at the top right corner of the touchpad.
|
|
* 4) -1.0,-1.0 is at the bottom left corner of the touchpad.
|
|
*
|
|
* Use Android Studio to Copy this Class, and Paste it into your team's code folder with a new name.
|
|
* Remove or comment out the @Disabled line to add this OpMode to the Driver Station OpMode list.
|
|
*/
|
|
|
|
@Disabled
|
|
@TeleOp(name="Concept: Gamepad Touchpad", group ="Concept")
|
|
public class ConceptGamepadTouchpad extends LinearOpMode
|
|
{
|
|
@Override
|
|
public void runOpMode()
|
|
{
|
|
telemetry.setDisplayFormat(Telemetry.DisplayFormat.MONOSPACE);
|
|
|
|
telemetry.addData(">", "Press Start");
|
|
telemetry.update();
|
|
|
|
waitForStart();
|
|
|
|
while (opModeIsActive())
|
|
{
|
|
boolean finger = false;
|
|
|
|
// Display finger 1 x & y position if finger detected
|
|
if(gamepad1.touchpad_finger_1)
|
|
{
|
|
finger = true;
|
|
telemetry.addLine(String.format("Finger 1: x=%5.2f y=%5.2f\n", gamepad1.touchpad_finger_1_x, gamepad1.touchpad_finger_1_y));
|
|
}
|
|
|
|
// Display finger 2 x & y position if finger detected
|
|
if(gamepad1.touchpad_finger_2)
|
|
{
|
|
finger = true;
|
|
telemetry.addLine(String.format("Finger 2: x=%5.2f y=%5.2f\n", gamepad1.touchpad_finger_2_x, gamepad1.touchpad_finger_2_y));
|
|
}
|
|
|
|
if(!finger)
|
|
{
|
|
telemetry.addLine("No fingers");
|
|
}
|
|
|
|
telemetry.update();
|
|
sleep(10);
|
|
}
|
|
}
|
|
}
|