Java 类edu.wpi.first.wpilibj.command.Command 实例源码
项目:Spartonics-Code
文件:Robot.java
/**
* This function is run when the robot is first started up and should be
* used for any initialization code.
*/
public void robotInit() {
chooser = new SendableChooser<Command>();
chassis = new Chassis();
intake = new Intake();
winch = new Winch();
// shooter = new Shooter();
oi = new OI();
imu = new ADIS16448_IMU(ADIS16448_IMU.Axis.kX);
pdp = new PowerDistributionPanel();
chooser.addDefault("Drive Straight", new DriveStraight(73, 0.5));
//chooser.addObject("Left Gear Curve", new LeftGearCurve());
chooser.addObject("Left Gear Turn", new LeftGearTurn());
//chooser.addObject("Right Gear Curve", new RightGearCurve());
chooser.addObject("Right Gear Turn", new RightGearTurn());
chooser.addObject("Middle Gear", new StraightGear());
chooser.addObject("Turn in place", new TurnDegrees(60, .2));
SmartDashboard.putData("Autonomous Chooser", chooser);
}
项目:FRC6706_JAVA2017
文件:Robot.java
/**
* This autonomous (along with the chooser code above) shows how to select
* between different autonomous modes using the dashboard. The sendable
* chooser code works with the Java SmartDashboard. If you prefer the
* LabVIEW Dashboard, remove all of the chooser code and uncomment the
* getString code to get the auto name from the text box below the Gyro
*
* You can add additional auto modes by adding additional commands to the
* chooser code above (like the commented example) or additional comparisons
* to the switch structure below with additional strings & commands.
*/
@Override
public void autonomousInit() {
mAutonomousCommand = (Command) autoChooser.getSelected();
//mAutonomousCommand.start();
if (mAutonomousCommand != null)
mAutonomousCommand.start();
/*
* String autoSelected = SmartDashboard.getString("Auto Selector",
* "Default"); switch(autoSelected) { case "My Auto": autonomousCommand
* = new MyAutoCommand(); break; case "Default Auto": default:
* autonomousCommand = new ExampleCommand(); break; }
*/
/*
// schedule the autonomous command (example)
if (autonomousCommand != null)
autonomousCommand.start();
*/
}
项目:2017-emmet
文件:Robot.java
public void robotInit() {
RobotMap.init();
drivetrain = new Drivetrain();
climber = new Climber();
// fuel = new Fuel();
gear = new Gear();
oi = new OI();
// initializes camera server
server = CameraServer.getInstance();
// cameraInit();
// server.startAutomaticCapture(0);
// autonomousCommand = (Command) new AutoMiddleHook();
autonomousCommand = (Command) new AutoBaseline();
// resets all sensors
resetAllSensors();
if (RobotConstants.isTestingEnvironment) updateTestingEnvironment();
updateSensorDisplay();
}
项目:2017-emmet
文件:Robot.java
/**
* This autonomous (along with the chooser code above) shows how to select
* between different autonomous modes using the dashboard. The sendable
* chooser code works with the Java SmartDashboard. If you prefer the
* LabVIEW Dashboard, remove all of the chooser code and uncomment the
* getString code to get the auto name from the text box below the Gyro
*
* You can add additional auto modes by adding additional commands to the
* chooser code above (like the commented example) or additional comparisons
* to the switch structure below with additional strings & commands.
*/
// @Override
public void autonomousInit() {
// DEBUG \\
if (RobotConstants.isTestingEnvironment) readTestingEnvironment();
// resets sensors
resetAllSensors();
autonomousCommand = (Command) autoChooser.getSelected();
// schedule the autonomous command (example)
if (autonomousCommand != null)
autonomousCommand.start();
}
项目:2017SteamBot2
文件:Robot.java
/**
* This autonomous (along with the chooser code above) shows how to select
* between different autonomous modes using the dashboard. The sendable
* chooser code works with the Java CustomDashboard. If you prefer the
* LabVIEW Dashboard, remove all of the chooser code and uncomment the
* getString line to get the auto name from the text box below the Gyro
*
* You can add additional auto modes by adding additional comparisons to the
* switch structure below with additional strings. If using the
* SendableChooser make sure to add them to the chooser code above as well.
*/
@Override
public void autonomousInit() {
driveTrain.resetEncoders();
driveTrain.resetGyro();
autoSelected = (Command) chooser.getSelected();
if(autoSelected instanceof Initializer) {
((Initializer)autoSelected).init();
}
autoSelected.start();
// autoSelected = CustomDashboard.getString("Auto Selector",
// defaultAuto);
System.out.println("Auto selected: " + autoSelected);
pollPreferences();
}
项目:Robot_2016
文件:ParseInput.java
public static ArrayList<Command> takeInput(String movement, boolean isRev, int shooting)
{
auto_Commands = new ArrayList<Command>(0);
if(movement.charAt(0) == 'f')
auto_Commands.add(new MoveForward(Double.valueOf(movement.substring(1))));
else if(movement.charAt(0) == 'r')
auto_Commands.add(new RotateAngle(Double.valueOf(movement.substring(1))));
else if(movement.charAt(0) == 's')
auto_Commands.add(new SpyBot(shooting));
//else if(movement.charAt(0) == 'l')
// auto_Commands.add(new CrossLowbar());
if(isRev == true && movement.charAt(0) == 'f')
auto_Commands.add(new MoveForward(-0.65*Double.valueOf(movement.substring(1)))); //This has the 0.65 because we don't want to accidentially cross the autoline when we go back
return auto_Commands; //an arraylist of the commands to be executed in autonomous
}
项目:Cybercavs2016Code
文件:Robot.java
public void teleopInit() {
// This makes sure that the autonomous stops running when
// teleop starts running. If you want the autonomous to
// continue until interrupted by another command, remove
// this line or comment it out.
if (autonomousCommand != null) {
autonomousCommand.cancel();
}
if (Robot.catapult.getPreviousShooterState() != 0) {
Robot.catapult.setShooterState(Robot.catapult.getPreviousShooterState());
Command cmd1 = new Shoot();
cmd1.start();
}
Robot.robotDrive.setIsInAuto(false);
}
项目:449-central-repo
文件:RobotMap.java
/**
* Default constructor.
*
* @param buttons The buttons for controlling this robot. Can be null for an empty list.
* @param logger The logger for recording events and telemetry data.
* @param updater A runnable that updates cached variables.
* @param defaultCommands The default commands for various subsystems.
* @param autoStartupCommand The command to be run when first enabled in autonomous mode.
* @param teleopStartupCommand The command to be run when first enabled in teleoperated mode.
* @param startupCommand The command to be run when first enabled.
*/
@JsonCreator
public RobotMap(@Nullable List<CommandButton> buttons,
@NotNull @JsonProperty(required = true) Logger logger,
@NotNull @JsonProperty(required = true) MappedRunnable updater,
@Nullable List<DefaultCommand> defaultCommands,
@Nullable Command autoStartupCommand,
@Nullable Command teleopStartupCommand,
@Nullable Command startupCommand) {
this.buttons = buttons != null ? buttons : new ArrayList<>();
this.logger = logger;
this.updater = updater;
this.defaultCommands = defaultCommands;
this.autoStartupCommand = autoStartupCommand;
this.teleopStartupCommand = teleopStartupCommand;
this.startupCommand = startupCommand;
}
项目:449-central-repo
文件:CommandButton.java
/**
* Default constructor.
*
* @param button The button that triggers the command.
* @param command The command to run or cancel.
* @param action The action to do to the command.
*/
@JsonCreator
public CommandButton(@NotNull @JsonProperty(required = true) MappedButton button,
@NotNull @JsonProperty(required = true) Command command,
@NotNull @JsonProperty(required = true) Action action) {
switch (action) {
case WHILE_HELD:
button.whileHeld(command);
break;
case WHEN_PRESSED:
button.whenPressed(command);
break;
case WHEN_RELEASED:
button.whenReleased(command);
break;
case CANCEL_WHEN_PRESSED:
button.cancelWhenPressed(command);
break;
case TOGGLE_WHEN_PRESSED:
button.toggleWhenPressed(command);
break;
}
}
项目:snobot-2017
文件:Trigger.java
/**
* Starts the given command whenever the trigger just becomes active.
*
* @param command the command to start
*/
public void whenActive(final Command command) {
new ButtonScheduler() {
private boolean m_pressedLast = grab();
@Override
public void execute() {
if (grab()) {
if (!m_pressedLast) {
m_pressedLast = true;
command.start();
}
} else {
m_pressedLast = false;
}
}
}.start();
}
项目:snobot-2017
文件:Trigger.java
/**
* Constantly starts the given command while the button is held.
*
* {@link Command#start()} will be called repeatedly while the trigger is active, and will be
* canceled when the trigger becomes inactive.
*
* @param command the command to start
*/
public void whileActive(final Command command) {
new ButtonScheduler() {
private boolean m_pressedLast = grab();
@Override
public void execute() {
if (grab()) {
m_pressedLast = true;
command.start();
} else {
if (m_pressedLast) {
m_pressedLast = false;
command.cancel();
}
}
}
}.start();
}
项目:snobot-2017
文件:Trigger.java
/**
* Starts the command when the trigger becomes inactive.
*
* @param command the command to start
*/
public void whenInactive(final Command command) {
new ButtonScheduler() {
private boolean m_pressedLast = grab();
@Override
public void execute() {
if (grab()) {
m_pressedLast = true;
} else {
if (m_pressedLast) {
m_pressedLast = false;
command.start();
}
}
}
}.start();
}
项目:snobot-2017
文件:Trigger.java
/**
* Toggles a command when the trigger becomes active.
*
* @param command the command to toggle
*/
public void toggleWhenActive(final Command command) {
new ButtonScheduler() {
private boolean m_pressedLast = grab();
@Override
public void execute() {
if (grab()) {
if (!m_pressedLast) {
m_pressedLast = true;
if (command.isRunning()) {
command.cancel();
} else {
command.start();
}
}
} else {
m_pressedLast = false;
}
}
}.start();
}
项目:snobot-2017
文件:Trigger.java
/**
* Cancels a command when the trigger becomes active.
*
* @param command the command to cancel
*/
public void cancelWhenActive(final Command command) {
new ButtonScheduler() {
private boolean m_pressedLast = grab();
@Override
public void execute() {
if (grab()) {
if (!m_pressedLast) {
m_pressedLast = true;
command.cancel();
}
} else {
m_pressedLast = false;
}
}
}.start();
}
项目:snobot-2017
文件:CommandParser.java
private Command parseDriveToPegUsingVisionCommand(List<String> args)
{
double timeout = 4;
double deadband = 6;
if (args.size() >= 2)
{
timeout = Double.parseDouble(args.get(1));
}
if (args.size() >= 3)
{
deadband = Double.parseDouble(args.get(2));
}
return new DriveToPegUsingVision(mSnobot.getVisionManager(), mSnobot.getSnobotActor(), deadband, timeout);
}
项目:snobot-2017
文件:CommandParser.java
private Command createTrajectoryCommand(String aFile)
{
String pathFile = Properties2017.sAUTON_PATH_DIRECTORY.getValue() + "/" + aFile.trim();
TextFileDeserializer deserializer = new TextFileDeserializer();
Path p = deserializer.deserializeFromFile(pathFile);
Command output = null;
if (p == null)
{
addError("Could not read path file " + pathFile);
}
else
{
output = new TrajectoryPathCommand(mSnobot.getDriveTrain(), mSnobot.getPositioner(), p);
}
return output;
}
项目:snobot-2017
文件:CommandParser.java
private Command createTrajStartToHopper(List<String> args)
{
StartingPositions startPosition = mPositionChooser.getSelected();
if (startPosition == null)
{
addError("Invalid starting position");
return null;
}
boolean doClose = true;
if (args.size() > 1 && args.get(1).equals("Far"))
{
doClose = false;
}
return TrajectoryStartToHopperFactory.createCommand(mSnobot, startPosition, doClose);
}
项目:snobot-2017
文件:CommandParser.java
private Command createTrajGearToHopper(List<String> args)
{
StartingPositions startPosition = mPositionChooser.getSelected();
if (startPosition == null)
{
addError("Invalid starting position");
return null;
}
boolean doClose = true;
if (args.size() > 1 && args.get(1).equals("Far"))
{
doClose = false;
}
return TrajectoryGearToHopperFactory.createCommand(mSnobot, startPosition, doClose);
}
项目:snobot-2017
文件:CommandParser.java
private Command createTurnPathCommand(List<String> args)
{
PathConfig dudePathConfig = new PathConfig(Double.parseDouble(args.get(1)), // Endpoint
Double.parseDouble(args.get(2)), // Max Velocity
Double.parseDouble(args.get(3)), // Max Acceleration
sEXPECTED_DT);
ISetpointIterator dudeSetpointIterator;
// TODO create dynamic iterator, way to switch
if (true)
{
dudeSetpointIterator = new StaticSetpointIterator(dudePathConfig);
}
return new DriveTurnPath(mSnobot.getDriveTrain(), mSnobot.getPositioner(), dudeSetpointIterator);
}
项目:snobot-2017
文件:CommandParser.java
private Command createDrivePathCommand(List<String> args)
{
PathConfig dudePathConfig = new PathConfig(Double.parseDouble(args.get(1)), // Endpoint
Double.parseDouble(args.get(2)), // Max Velocity
Double.parseDouble(args.get(3)), // Max Acceleration
sEXPECTED_DT);
ISetpointIterator dudeSetpointIterator;
// TODO create dynamic iterator, way to switch
if (true)
{
PathGenerator dudePathGenerator = new PathGenerator();
List<PathSetpoint> dudeList = dudePathGenerator.generate(dudePathConfig);
dudeSetpointIterator = new StaticSetpointIterator(dudeList);
}
return new DriveStraightPath(mSnobot.getDriveTrain(), mSnobot.getPositioner(), dudeSetpointIterator);
}
项目:snobot-2017
文件:CommandParser.java
private Command createTrajectoryCommand(String aFile)
{
String pathFile = Properties2016.sAUTON_PATH_DIRECTORY.getValue() + "/" + aFile.trim();
TextFileDeserializer deserializer = new TextFileDeserializer();
Path p = deserializer.deserializeFromFile(pathFile);
Command output = null;
if (p == null)
{
addError("Could not read path file " + pathFile);
}
else
{
output = new TrajectoryPathCommand(mSnobot.getDriveTrain(), mSnobot.getPositioner(), p);
}
return output;
}
项目:snobot-2017
文件:CommandParser.java
private Command createFudgePosition(List<String> args)
{
double newX;
double newY;
if (args.get(1).equals("Same"))
{
newX = mSnobot.getPositioner().getXPosition();
}
else
{
newX = Double.parseDouble(args.get(1));
}
if (args.get(2).equals("Same"))
{
newY = mSnobot.getPositioner().getYPosition();
}
else
{
newY = Double.parseDouble(args.get(2));
}
return new FudgeThePosition(mSnobot.getPositioner(), newX, newY);
}
项目:Stronghold2016-340
文件:Robot.java
/**
* This autonomous (along with the chooser code above) shows how to select between different autonomous modes
* using the dashboard. The sendable chooser code works with the Java SmartDashboard. If you prefer the LabVIEW
* Dashboard, remove all of the chooser code and uncomment the getString code to get the auto name from the text box
* below the Gyro
*
* You can add additional auto modes by adding additional commands to the chooser code above (like the commented example)
* or additional comparisons to the switch structure below with additional strings & commands.
*/
public void autonomousInit() {
autonomousCommand = (Command) chooser.getSelected();
/* String autoSelected = SmartDashboard.getString("Auto Selector", "Default");
switch(autoSelected) {
case "My Auto":
autonomousCommand = new MyAutoCommand();
break;
case "Default Auto":
default:
autonomousCommand = new ExampleCommand();
break;
} */
// schedule the autonomous command (example)
if (autonomousCommand != null) autonomousCommand.start();
belowLowBar.start();
}
项目:Stronghold2016-340
文件:Robot.java
/**
* This autonomous (along with the chooser code above) shows how to select between different autonomous modes
* using the dashboard. The sendable chooser code works with the Java SmartDashboard. If you prefer the LabVIEW
* Dashboard, remove all of the chooser code and uncomment the getString code to get the auto name from the text box
* below the Gyro
*
* You can add additional auto modes by adding additional commands to the chooser code above (like the commented example)
* or additional comparisons to the switch structure below with additional strings & commands.
*/
public void autonomousInit() {
autonomousCommand = (Command) chooser.getSelected();
/* String autoSelected = SmartDashboard.getString("Auto Selector", "Default");
switch(autoSelected) {
case "My Auto":
autonomousCommand = new MyAutoCommand();
break;
case "Default Auto":
default:
autonomousCommand = new ExampleCommand();
break;
} */
// schedule the autonomous command (example)
if (autonomousCommand != null) autonomousCommand.start();
}
项目:liastem
文件:Robot.java
/**
* This autonomous (along with the chooser code above) shows how to select between different autonomous modes
* using the dashboard. The sendable chooser code works with the Java SmartDashboard. If you prefer the LabVIEW
* Dashboard, remove all of the chooser code and uncomment the getString code to get the auto name from the text box
* below the Gyro
*
* You can add additional auto modes by adding additional commands to the chooser code above (like the commented example)
* or additional comparisons to the switch structure below with additional strings & commands.
*/
public void autonomousInit() {
autonomousCommand = (Command) chooser.getSelected();
/* String autoSelected = SmartDashboard.getString("Auto Selector", "Default");
switch(autoSelected) {
case "My Auto":
autonomousCommand = new MyAutoCommand();
break;
case "Default Auto":
default:
autonomousCommand = new ExampleCommand();
break;
} */
// schedule the autonomous command (example)
if (autonomousCommand != null) autonomousCommand.start();
}
项目:liastem
文件:Robot.java
/**
* This autonomous (along with the chooser code above) shows how to select between different autonomous modes
* using the dashboard. The sendable chooser code works with the Java SmartDashboard. If you prefer the LabVIEW
* Dashboard, remove all of the chooser code and uncomment the getString code to get the auto name from the text box
* below the Gyro
*
* You can add additional auto modes by adding additional commands to the chooser code above (like the commented example)
* or additional comparisons to the switch structure below with additional strings & commands.
*/
public void autonomousInit() {
autonomousCommand = (Command) chooser.getSelected();
/* String autoSelected = SmartDashboard.getString("Auto Selector", "Default");
switch(autoSelected) {
case "My Auto":
autonomousCommand = new MyAutoCommand();
break;
case "Default Auto":
default:
autonomousCommand = new ExampleCommand();
break;
} */
// schedule the autonomous command (example)
if (autonomousCommand != null) autonomousCommand.start();
}
项目:2016-Robot-Code
文件:AimCleatShot.java
public AimCleatShot(Direction direction) {
Command turntableCommand = null;
switch (direction) {
case LEFT:
turntableCommand = new MoveTurnTable(270);
break;
case RIGHT:
turntableCommand = new MoveTurnTable(90);
break;
case CENTER:
turntableCommand = new MoveTurnTable(180);
break;
default:
// Oh no!
break;
}
addSequential(turntableCommand);
}
项目:FRC-2016
文件:Robot.java
/**
* This autonomous (along with the chooser code above) shows how to select between different autonomous modes
* using the dashboard. The sendable chooser code works with the Java SmartDashboard. If you prefer the LabVIEW
* Dashboard, remove all of the chooser code and uncomment the getString code to get the auto name from the text box
* below the Gyro
*
* You can add additional auto modes by adding additional commands to the chooser code above (like the commented example)
* or additional comparisons to the switch structure below with additional strings & commands.
*/
public void autonomousInit() {
autonomousCommand = (Command) chooser.getSelected();
/* String autoSelected = SmartDashboard.getString("Auto Selector", "Default");
switch(autoSelected) {
case "My Auto":
autonomousCommand = new MyAutoCommand();
break;
case "Default Auto":
default:
autonomousCommand = new ExampleCommand();
break;
} */
// schedule the autonomous command (example)
if (autonomousCommand != null) autonomousCommand.start();
}
项目:FB2016
文件:AutonomousCommand.java
public AutonomousCommand(Command defense_command) {
requires(Robot.chassis);
addSequential(defense_command);
addSequential(new AimAndShootCommand());
// Add Commands here:
// e.g. addSequential(new Command1());
// addSequential(new Command2());
// these will run in order.
// To run multiple commands at the same time,
// use addParallel()
// e.g. addParallel(new Command1());
// addSequential(new Command2());
// Command1 and Command2 will run in parallel.
// A command group will require all of the subsystems that each member
// would require.
// e.g. if Command1 requires chassis, and Command2 requires arm,
// a CommandGroup containing them would require both the chassis and the
// arm.
}
项目:2015-Recycle-Rush
文件:Robot.java
public void autonomousInit() {
// Use the selected autonomous command
autonomousCommand = (Command) oi.autonomousProgramChooser.getSelected();
//double desiredDistrance = preferences.getDouble("DesiredDistance", 9.0);
//autonomousCommand = new AutonomousCommandToteStrategy();
//autonomousCommand = new StrafeCommand(3, 0.7);
//double desiredDistance = preferences.getDouble("DesiredDistance", 9.0);
//autonomousCommand = new AutonomousCommandToteStrategy();
// Sets the setPoint to where-ever it is to prevent the elevator
// wanting to go to a random position (default zero)
elevator.setHieghtToCurrentPosition();
// Tells the elevator to approximate the other maximum when it hits a limit switch
Elevator.SAFETY = true;
Elevator.needToApproximate = true;
Elevator.didSaveTopValue = false;
Elevator.didSaveBottomValue = false;
driveTrain.fieldMode = false;
autonomousCommand.start();
}
项目:robot15
文件:Robot.java
public void autonomousInit() {
toteCollectTime = prefs.getDouble("toteTimeout", 1.0);
driveToAutoTime = prefs.getDouble("timeToAutozone", 4.0);
driveToAutoSpeed = prefs.getFloat("driveSpeedToScore", -0.8f);
driveToBinTime = prefs.getDouble("timeToBin", 1.0);
driveToBinSpeed = prefs.getFloat("driveToBinSpeed", -0.5f);
elevateToteTime = prefs.getDouble("timeToElevateTote", 1.0);
rollersEjectTime = prefs.getDouble("timeForRollersToEject", 1.0);
timeToGroundLevel = prefs.getDouble("timeToGroundLevel", 1.0);
turnToAutoTime = prefs.getDouble("timeToTurnToAutoZone", 1.0);
turnToAutoSpeed = prefs.getFloat("speedToTurnToAutoZone", 0.5f);
binLiftTime = prefs.getDouble("timeToLiftBin", 1.0);
clawOpenOnElevMove = prefs.getBoolean("clawOpenALot", true);
clawCloseOnElevMove = prefs.getBoolean("clawCloseALot", true);
prefs.save();
// schedule the autonomous command (example)
autonomousCommand = (Command) chooser.getSelected();
if (autonomousCommand != null) autonomousCommand.start();
}
项目:Robot_2015
文件:Robot.java
public void autonomousInit() {
// schedule the autonomous command
//RobotMap.forkliftMotor.enableBrakeMode(true); //TODO: verify that this is how you do it
/*
* RobotMap.driveBaseLeftFrontMotor.enableBrakeMode(true);
* RobotMap.driveBaseRightFrontMotor.enableBrakeMode(true);
RobotMap.driveBaseLeftRearMotor.enableBrakeMode(true);
RobotMap.driveBaseRightRearMotor.enableBrakeMode(true);
*/
RobotMap.imu.zeroYaw();
RobotMap.driveBaseLeftFrontMotor.enableBrakeMode(false);
RobotMap.driveBaseRightFrontMotor.enableBrakeMode(false);
RobotMap.driveBaseLeftRearMotor.enableBrakeMode(false);
RobotMap.driveBaseRightRearMotor.enableBrakeMode(false);
Scheduler.getInstance().add((Command) oi.pattern.getSelected());
}
项目:wpilibj
文件:Trigger.java
/**
* Starts the given command whenever the trigger just becomes active.
* @param command the command to start
*/
public void whenActive(final Command command) {
new ButtonScheduler() {
boolean pressedLast = grab();
public void execute() {
if (grab()) {
if (!pressedLast) {
pressedLast = true;
command.start();
}
} else {
pressedLast = false;
}
}
}.start();
}
项目:wpilibj
文件:Trigger.java
/**
* Constantly starts the given command while the button is held.
*
* {@link Command#start()} will be called repeatedly while the trigger is active,
* and will be canceled when the trigger becomes inactive.
*
* @param command the command to start
*/
public void whileActive(final Command command) {
new ButtonScheduler() {
boolean pressedLast = grab();
public void execute() {
if (grab()) {
pressedLast = true;
command.start();
} else {
if (pressedLast) {
pressedLast = false;
command.cancel();
}
}
}
}.start();
}
项目:wpilibj
文件:Trigger.java
/**
* Starts the command when the trigger becomes inactive
* @param command the command to start
*/
public void whenInactive(final Command command) {
new ButtonScheduler() {
boolean pressedLast = grab();
public void execute() {
if (grab()) {
pressedLast = true;
} else {
if (pressedLast) {
pressedLast = false;
command.start();
}
}
}
}.start();
}
项目:wpilibj
文件:Trigger.java
/**
* Toggles a command when the trigger becomes active
* @param command the command to toggle
*/
public void toggleWhenActive(final Command command) {
new ButtonScheduler() {
boolean pressedLast = grab();
public void execute() {
if (grab()) {
if (!pressedLast) {
pressedLast = true;
if (command.isRunning()){
command.cancel();
} else{
command.start();
}
}
} else {
pressedLast = false;
}
}
}.start();
}
项目:wpilibj
文件:Trigger.java
/**
* Cancels a command when the trigger becomes active
* @param command the command to cancel
*/
public void cancelWhenActive(final Command command) {
new ButtonScheduler() {
boolean pressedLast = grab();
public void execute() {
if (grab()) {
if (!pressedLast) {
pressedLast = true;
command.cancel();
}
} else {
pressedLast = false;
}
}
}.start();
}
项目:CMonster2014
文件:Robot.java
public void autonomousInit() {
// // Last ditch effort to bring the camera up on the DS laptop, probably
// // is too late.
// TargetTrackingCommunication.setCameraEnabled(true);
// // Tell the DS laptop to starting detecting the hot target
// TargetTrackingCommunication.setAutonomousVisionRunning(true);
// Removed this and put it in the autonomous command
// Robot.driveSubsystem.getRobotDrive().resetGyro();
// Pick which autonomous mode to use.
Object selection = autonomousChooser.getSelected();
if (selection != null && selection instanceof Command) {
autonomousCommand = (Command) selection;
autonomousCommand.start();
} else {
System.out.println("No autonomous mode selected.");
}
}
项目:Storm2014
文件:OI.java
private Command _changeIntake(final int diff) {
return new DoNothing() {
protected void initialize() {
_intake += diff;
if(_intake >= 1) {
Robot.intake.spinIn();
} else if(_intake <= -1) {
Robot.intake.spinOut();
} else {
Robot.intake.stop();
}
}
protected boolean isFinished() {
return true;
}
};
}
项目:Storm2014
文件:Conditional.java
public Conditional(final Command ifTrue,final Command ifFalse) {
super("Condition?" + (ifTrue == null ? "" : ifTrue .getName()) +
":" + (ifFalse == null ? "" : ifFalse.getName()));
// Wrap the Commands to expose protected methods
if(ifTrue != null) {
_ifTrue = new PublicCommand(ifTrue);
for(Enumeration e = _ifTrue.getRequirements();e.hasMoreElements();) {
requires((Subsystem) e.nextElement());
}
} else {
_ifTrue = null;
}
if(ifFalse != null) {
_ifFalse = new PublicCommand(ifFalse);
for(Enumeration e = _ifFalse.getRequirements();e.hasMoreElements();) {
requires((Subsystem) e.nextElement());
}
} else {
_ifFalse = null;
}
}