This repository has been archived on 2020-09-21. You can view files and clone it, but cannot push or open issues or pull requests.
FRC2016-old/DriveBase/src/Robot.cpp

106 lines
2.4 KiB
C++
Raw Normal View History

2016-01-28 11:33:19 -05:00
#include "WPILib.h"
#include "TankDrive.h"
/**
* This sample shows how to use the new CANTalon to just run a motor in a basic
* throttle mode, in the same manner as you might control a traditional PWM
* controlled motor.
*
*/
2016-01-28 15:47:56 -05:00
class Robot : public IterativeRobot {
CANTalon r1_drive;
CANTalon r2_drive;
CANTalon l1_drive;
CANTalon l2_drive;
CANTalon shooter1;
CANTalon shooter2;
RobotDrive drivetrain1;
RobotDrive drivetrain2;
2016-01-28 11:33:19 -05:00
Joystick rstick, lstick;
2016-01-28 11:33:19 -05:00
// update every 0.01 seconds/10 milliseconds.
// The talon only receives control packets every 10ms.
2016-01-28 15:47:56 -05:00
//double kUpdatePeriod = 0.010;
2016-01-28 11:33:19 -05:00
public:
Robot()
2016-01-28 15:47:56 -05:00
: r1_drive(1), // Initialize the Talon as device 1. Use the roboRIO web
r2_drive(2), // interface to change the device number on the talons.
l1_drive(3),
l2_drive(4),
shooter1(10),
shooter2(11),
drivetrain1(l1_drive, r1_drive),
drivetrain2(l2_drive, r2_drive),
rstick(0),
lstick(1)
2016-01-28 15:47:56 -05:00
{
printf("Initializing Robot...");
printf("Initializing TankDrive");
//drive = new TankDrive(&l1_drive, &l2_drive, &r1_drive, &r2_drive);
2016-01-28 15:47:56 -05:00
printf("Ready!");
//l1_drive.SetInverted(true);
//l2_drive.SetInverted(true);
//l1_drive.Set(0, 0);
//l2_drive.Set(0, 0);
//r1_drive.Set(0, 1);
//r2_drive.Set(0, 1);
2016-01-28 15:47:56 -05:00
}
2016-01-28 11:33:19 -05:00
2016-01-28 15:47:56 -05:00
void DisabledInit()
{
r1_drive.SetSafetyEnabled(false);
r2_drive.SetSafetyEnabled(false);
l1_drive.SetSafetyEnabled(false);
l2_drive.SetSafetyEnabled(false);
shooter1.SetSafetyEnabled(false);
shooter2.SetSafetyEnabled(false);
2016-01-28 15:47:56 -05:00
}
void TeleopInit()
{
printf("Starting Teleop mode");
r1_drive.Enable();
r2_drive.Enable();
l1_drive.Enable();
l2_drive.Enable();
2016-01-28 15:47:56 -05:00
}
void TeleopPeriodic()
{
printf("Teleop Periodic Start.");
float speed = lstick.GetY() * ((1.0 - (lstick.GetThrottle()))/2.0);
float rot = lstick.GetX();
drivetrain1.ArcadeDrive(speed, rot, false);
drivetrain2.ArcadeDrive(speed, rot, false);
float power = (1.0 - rstick.GetThrottle()) / 2.0;
shooter1.Set(power);
shooter2.Set(power);
printf("~Teleop Periodic End.");
2016-01-28 15:47:56 -05:00
}
2016-01-28 11:33:19 -05:00
/**
* Runs the motor from the output of a Joystick.
2016-01-28 15:47:56 -05:00
*
2016-01-28 11:33:19 -05:00
void OperatorControl() {
while (IsOperatorControl() && IsEnabled()) {
// Do Drive.
2016-01-28 15:47:56 -05:00
std::cerr << "In Operator Control";
drive->Drive(&m_stick);
2016-01-28 11:33:19 -05:00
Wait(kUpdatePeriod); // Wait a bit so that the loop doesn't lock everything up.
}
2016-01-28 15:47:56 -05:00
}*/
//TankDrive *drive;
2016-01-28 11:33:19 -05:00
};
START_ROBOT_CLASS(Robot)