2
0
mirror of https://github.com/team2059/Dent synced 2024-12-18 20:52:29 -05:00

Started working on command based robot (does not work)

This commit is contained in:
Austen Adler 2015-01-11 16:02:49 -05:00
parent ba21daae67
commit 88ec9d5248
15 changed files with 126 additions and 157 deletions

25
src/CommandBase.cpp Normal file
View File

@ -0,0 +1,25 @@
#include "CommandBase.h"
#include "Subsystems/Drivetrain.h"
#include "Subsystems/Collector.h"
#include "Subsystems/Elevator.h"
#include "Commands/Drive.h"
#include "Commands/Collect.h"
#include "Commands/Eject.h"
#include "Commands/Raise.h"
#include "Commands/Lower.h"
Drivetrain* CommandBase::drivetrain = NULL;
Collector* CommandBase::collector = NULL;
Elevator* CommandBase::elevator = NULL;
OI* CommandBase::oi = NULL;
CommandBase::CommandBase(char const *name) : Command(name) {
}
CommandBase::CommandBase() : Command() {
}
void CommandBase::init()
{
drivetrain = new Drivetrain();
collector = new Collector();
elevator = new Elevator();
oi = new OI();
}

20
src/CommandBase.h Normal file
View File

@ -0,0 +1,20 @@
#ifndef COMMAND_BASE_H
#define COMMAND_BASE_H
#include <string>
#include "Commands/Command.h"
#include "Subsystems/ExampleSubsystem.h"
#include "OI.h"
#include "WPILib.h"
class CommandBase: public Command {
public:
CommandBase(char const *name);
CommandBase();
static void init();
static Drivetrain *drivetrain;
static Collector *collector;
static Elevator *elevator;
static OI *oi;
};
#endif

39
src/DentRobot.cpp Normal file
View File

@ -0,0 +1,39 @@
#include "WPILib.h"
#include "Commands/Command.h"
#include "Commands/Drive.h"
#include "Commands/Collect.h"
#include "Commands/Eject.h"
#include "Commands/Raise.h"
#include "Commands/Lower.h"
class DentRobot: public IterativeRobot {
private:
Command *autonomousCommand = NULL;
LiveWindow *lw;
void RobotInit() {
CommandBase::init();
lw = LiveWindow::GetInstance();
}
void DisabledPeriodic() {
Scheduler::GetInstance()->Run();
}
void AutonomousInit() {
if(autonomousCommand != NULL) {
autonomousCommand->Start();
}
}
void AutonomousPeriodic() {
Scheduler::GetInstance()->Run();
}
void TeleopInit() {
if(autonomousCommand != NULL) {
autonomousCommand->Cancel();
}
}
void TeleopPeriodic() {
Scheduler::GetInstance()->Run();
}
void TestPeriodic() {
lw->Run();
}
};
START_ROBOT_CLASS(DentRobot);

View File

@ -1,28 +0,0 @@
#include "HHBase.h"
#include <iostream>
#include <fstream>
#include <stdexcept>
#include <map>
HHBase::HHBase():
hhbot(new HHRobot()){
printf("Done\n");
}
void HHBase::RobotInit(){
}
void HHBase::DisabledInit(){}
void HHBase::AutonomousInit(){
}
void HHBase::TeleopInit(){
}
void HHBase::DisabledContinuous(){}
void HHBase::AutonomousContinuous(){}
void HHBase::TeleopContinuous(){}
void HHBase::DisabledPeriodic(){}
void HHBase::AutonomousPeriodic(){
}
void HHBase::TeleopPeriodic(){
hhbot->Handler();
}
void HHBase::Test(){}
START_ROBOT_CLASS(HHBase);
// vim: ts=2:sw=2:et

View File

@ -1,26 +0,0 @@
#ifndef __HH_BASE_H__
#define __HH_BASE_H__
#include <WPILib.h>
#include <string>
#include "HHRobot.h"
//Because this is the first header to be included, classes need to be declared here
class HHRobot;
class HHBase : public IterativeRobot{
private:
HHRobot *hhbot;
public:
HHBase();
void RobotInit();
void DisabledInit();
void AutonomousInit();
void TeleopInit();
void DisabledContinuous();
void AutonomousContinuous();
void TeleopContinuous();
void DisabledPeriodic();
void AutonomousPeriodic();
void TeleopPeriodic();
void Test();
};
#endif
// vim: ts=2:sw=2:et

View File

@ -1,46 +0,0 @@
#include "HHRobot.h"
#include "HHBase.h"
HHRobot::HHRobot():
hhdrive(new RobotDrive(2,0,3,1)),
gyro(new Gyro(1)),
collector(new DentCollector(4, 5, 6, 7)),
driveStick(new Extreme3dPro(0)){
hhdrive->SetExpiration(0.1);
hhdrive->SetInvertedMotor(RobotDrive::kFrontRightMotor, true);
hhdrive->SetInvertedMotor(RobotDrive::kRearLeftMotor,true);
}
void HHRobot::Init(){
printf("Initing\n");
printf("Code Version: %f\n",0000.1);
gyro->Reset();
}
//Main function used to handle periodic tasks on the robot
void HHRobot::Handler(){
const float Kp = 0.3;
if(driveStick->GetJoystickButton(1)==1){
hhdrive->MecanumDrive_Cartesian(driveStick->GetJoystickAxis("z"), 0, driveStick->GetJoystickAxis("x"));
}else if(driveStick->GetJoystickButton(2)==1){
hhdrive->MecanumDrive_Cartesian(driveStick->GetJoystickAxis("z"), driveStick->GetJoystickAxis("y"), 0);
}else if(driveStick->GetJoystickButton(3)==1){
hhdrive->Drive(driveStick->GetJoystickAxis("y"), driveStick->GetJoystickAxis("y")*Kp*-gyro->GetAngle());
}else{
hhdrive->MecanumDrive_Cartesian(driveStick->GetJoystickAxis("z"), driveStick->GetJoystickAxis("y"), driveStick->GetJoystickAxis("x"));
}
if(driveStick->GetJoystickButton(11)==1){
collector->Collect(driveStick->GetThrottle());
}else if(driveStick->GetJoystickButton(12)==1){
collector->Collect(-driveStick->GetThrottle());
}else if(driveStick->GetJoystickButton(9)==1){
collector->Raise(driveStick->GetThrottle());
}else if(driveStick->GetJoystickButton(10)==1){
collector->Raise(-driveStick->GetThrottle());
}else{
collector->Rest();
}
SmartDashboard::PutNumber("hambone1", driveStick->GetThrottle());
SmartDashboard::PutNumber("hambone2", driveStick->GetJoystickAxis("joystick"));
SmartDashboard::PutNumber("hambone3", driveStick->GetRawJoystickAxis(3));
printf("hambone2: %f", driveStick->GetThrottle());
Wait(0.005);
}
// vim: ts=2:sw=2:et

View File

@ -1,19 +0,0 @@
#ifndef __ROBOT_H__
#define __ROBOT_H__
#include <WPILib.h>
#include "HHBase.h"
#include "classes/Collector.h"
#include "hhlib/input/controller/Joystick.h"
class HHRobot{
private:
RobotDrive *hhdrive;
Gyro *gyro;
DentCollector *collector;
Extreme3dPro *driveStick;
public:
HHRobot();
void Init();
void Handler();
};
#endif
// vim: ts=2:sw=2:et

4
src/OI.cpp Normal file
View File

@ -0,0 +1,4 @@
#include "OI.h"
OI::OI() {
}

12
src/OI.h Normal file
View File

@ -0,0 +1,12 @@
#ifndef OI_H
#define OI_H
#include "WPILib.h"
class OI
{
private:
public:
OI();
};
#endif

6
src/RobotMap.h Normal file
View File

@ -0,0 +1,6 @@
#ifndef ROBOTMAP_H
#define ROBOTMAP_H
#include "WPILib.h"
#endif

View File

@ -0,0 +1,7 @@
#include "ExampleSubsystem.h"
#include "../RobotMap.h"
ExampleSubsystem::ExampleSubsystem() : Subsystem("ExampleSubsystem") {
}
void ExampleSubsystem::InitDefaultCommand() {
}

View File

@ -0,0 +1,13 @@
#ifndef COLLECTOR_H
#define COLLECTOR_H
#include "Commands/Subsystem.h"
#include "WPILib.h"
class Collector: public Subsystem
{
private:
public:
ExampleSubsystem();
void InitDefaultCommand();
};
#endif

View File

@ -1,22 +0,0 @@
#include "Collector.h"
DentCollector::DentCollector(int fl, int fr, int rl, int rr){
collectorLeft = new Talon(fl);
collectorRight = new Talon(fr);
raiserLeft = new Talon(rl);
raiserRight = new Talon(rr);
}
void DentCollector::Collect(float power){
collectorLeft->Set(power);
collectorRight->Set(power);
}
void DentCollector::Raise(float power){
raiserLeft->Set(power);
raiserRight->Set(power);
}
void DentCollector::Rest(){
raiserLeft->Set(0);
raiserRight->Set(0);
collectorLeft->Set(0);
collectorRight->Set(0);
}
// vim: ts=2:sw=2:et

View File

@ -1,15 +0,0 @@
#ifndef __COLLECTOR_H__
#include <WPILib.h>
#define __COLLECTOR_H__
//#include ""
class DentCollector{
private:
Talon *collectorLeft, *collectorRight, *raiserLeft, *raiserRight;
public:
DentCollector(int, int, int, int);
void Collect(float);
void Raise(float);
void Rest();
};
#endif
// vim: ts=2:sw=2:et

@ -1 +0,0 @@
Subproject commit 38a965dd1f7c6737f722f56c0f7940805ece9917