fixed meaningless conflicts because I totally know how to manage my time.
This commit is contained in:
commit
ffb9d1a637
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,3 +2,4 @@
|
||||
DriveBase/.settings
|
||||
DriveBase/sysProps.xml
|
||||
.metadata
|
||||
.settings/*
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "WPILib.h"
|
||||
#include "TankDrive.h"
|
||||
//#include "TankDrive.h"
|
||||
#include "Shooter.h"
|
||||
#include <ctime>
|
||||
#include <iostream>
|
||||
@ -10,27 +10,21 @@
|
||||
#include <vector>
|
||||
#include <cmath>
|
||||
|
||||
|
||||
/**
|
||||
* 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.
|
||||
*/
|
||||
<<<<<<< HEAD
|
||||
class Robot: public IterativeRobot
|
||||
{
|
||||
private:
|
||||
CANTalon r1_drive, r2_drive,
|
||||
l1_drive, l2_drive,
|
||||
shooter1, shooter2;
|
||||
=======
|
||||
|
||||
|
||||
#ifndef BUTTON_LAYOUT
|
||||
#define BUTTON_LAYOUT
|
||||
|
||||
#define TRIGGER 0
|
||||
#define THUMB 1
|
||||
#define TRIGGER 1
|
||||
#define THUMB 2
|
||||
|
||||
#endif
|
||||
#endif // BUTTON_LAYOUT
|
||||
|
||||
class Robot: public IterativeRobot {
|
||||
CANTalon r1_drive;
|
||||
@ -40,8 +34,9 @@ class Robot: public IterativeRobot {
|
||||
CANTalon shooter1;
|
||||
CANTalon shooter2;
|
||||
CANTalon ramp;
|
||||
>>>>>>> master
|
||||
TankDrive drive;
|
||||
// Counter ramp_lift;
|
||||
RobotDrive drive;
|
||||
Shooter shooter;
|
||||
Joystick rstick, lstick;
|
||||
|
||||
@ -64,12 +59,13 @@ public:
|
||||
shooter1(10), // shooter drive 1
|
||||
shooter2(11), // shooter drive 2
|
||||
ramp(12),
|
||||
drive( // initialize TankDrive object.
|
||||
&l1_drive, &l2_drive, &r1_drive, &r2_drive),
|
||||
drive( // initialize RobotDrive object.
|
||||
&l1_drive, &r1_drive),
|
||||
shooter( // initialize Shooter object.
|
||||
&shooter1, &shooter2, &ramp),
|
||||
rstick(0), // right stick (operator)
|
||||
lstick(1) // left stick (driver)
|
||||
lstick(1)//, // left stick (driver)
|
||||
//ramp_lift(1) // counter for the hall sensor on the
|
||||
{
|
||||
|
||||
}
|
||||
@ -92,21 +88,24 @@ public:
|
||||
}
|
||||
|
||||
void TeleopPeriodic() {
|
||||
drive.Drive(&lstick);
|
||||
drive.ArcadeDrive(&lstick);
|
||||
l2_drive.Set(l1_drive.Get());
|
||||
r2_drive.Set(r1_drive.Get());
|
||||
|
||||
|
||||
float power = (1.0 - rstick.GetThrottle()) / 2.0;
|
||||
|
||||
//shooter.SetPower(power);
|
||||
shooter.SetPower(power);
|
||||
if(rstick.GetRawButton(TRIGGER))
|
||||
{
|
||||
// SHOOT THE BALL
|
||||
ramp.Set(-0.5);
|
||||
ramp.Set(-1);
|
||||
}
|
||||
|
||||
if(rstick.GetRawButton(THUMB))
|
||||
{
|
||||
// lower the ramp
|
||||
ramp.Set(0.5);
|
||||
ramp.Set(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -18,17 +18,25 @@
|
||||
* Encapsulates two RobotDrive objects and keeps them synced by sending
|
||||
* identical ArcadeDrive calls to each. Also handles massaging of Joystick
|
||||
* data to smooth out drive operations.
|
||||
*
|
||||
* TODO: Make this reflect what this class actually does.
|
||||
*/
|
||||
class TankDrive {
|
||||
|
||||
public:
|
||||
TankDrive(CANTalon *l1, CANTalon *l2, CANTalon* r1, CANTalon *r2) {
|
||||
dt1 = new RobotDrive(l1, r1);
|
||||
dt2 = new RobotDrive(l2, r2);
|
||||
|
||||
CANTalon* left1 = l1;
|
||||
CANTalon* right1 = r1;
|
||||
CANTalon* left2 = l2;
|
||||
CANTalon* right2 = r2;
|
||||
|
||||
//dt2 = new RobotDrive(l2, r2);
|
||||
}
|
||||
virtual ~TankDrive() {
|
||||
delete dt1;
|
||||
delete dt2;
|
||||
// delete dt2;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -37,7 +45,7 @@ public:
|
||||
* Some math on the "rot" variable could make the driving smoother, I think.
|
||||
*/
|
||||
void Drive(Joystick *js) {
|
||||
float x = js->GetX();
|
||||
/*float x = js->GetX();
|
||||
float y = js->GetY();
|
||||
float th = -((1.0 - (js->GetThrottle()))
|
||||
/ 2.0);
|
||||
@ -52,14 +60,23 @@ public:
|
||||
|
||||
float speed = y * th;
|
||||
// TODO: do some math here to smooth out turning?
|
||||
float rot = x * th;
|
||||
float rot = x * th;*/
|
||||
dt1->ArcadeDrive(js);
|
||||
left2.Set(left1.Get());
|
||||
right2.Set(right1.Get());
|
||||
|
||||
|
||||
|
||||
// dt2->ArcadeDrive(js);
|
||||
/*
|
||||
dt1->ArcadeDrive(speed, rot, false);
|
||||
dt2->ArcadeDrive(speed, rot, false);
|
||||
dt2->ArcadeDrive(speed, rot, false);*/
|
||||
}
|
||||
|
||||
private:
|
||||
RobotDrive *dt1, *dt2;
|
||||
RobotDrive *dt1/*, *dt2*/;
|
||||
|
||||
CANTalon l1, right1, left2, right2;
|
||||
};
|
||||
|
||||
#endif /* SRC_TANKDRIVE_H_ */
|
||||
|
283
Robot2016/.cproject
Normal file
283
Robot2016/.cproject
Normal file
@ -0,0 +1,283 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/GearsBotCPPWin"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/GearsBotCPPWin/Debug"/>
|
||||
<entry flags="RESOLVED" kind="libraryFile" name="GearsBotCPPWin" srcPrefixMapping="" srcRootPath=""/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="FRCUserProgram" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="Debug" id="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751" name="Debug" parent="cdt.managedbuild.config.gnu.cross.exe.debug">
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751." name="/" resourcePath="">
|
||||
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.debug.379433867" name="Cross GCC" nonInternalBuilderId="cdt.managedbuild.builder.gnu.cross" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.debug">
|
||||
<option id="cdt.managedbuild.option.gnu.cross.prefix.541714056" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix" value="arm-frc-linux-gnueabi-" valueType="string"/>
|
||||
<option id="cdt.managedbuild.option.gnu.cross.path.1246856819" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path" value="/usr/local/bin" valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.864368257" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
|
||||
<builder autoBuildTarget="all" buildPath="${workspace_loc:/Robot2016}/Debug" cleanBuildTarget="clean" id="org.eclipse.cdt.build.core.internal.builder.1308552451" incrementalBuildTarget="all" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="CDT Internal Builder" superClass="org.eclipse.cdt.build.core.internal.builder"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1261239456" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
|
||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.680635682" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
|
||||
<option id="gnu.c.compiler.option.debugging.level.143320011" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1793678673" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.1505235107" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
|
||||
<option id="gnu.cpp.compiler.option.optimization.level.1204256582" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.option.debugging.level.969129918" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.option.include.paths.394786621" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${WPILIB}/cpp/current/include""/>
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.dialect.flags.1518551306" superClass="gnu.cpp.compiler.option.dialect.flags" value="-std=c++1y" valueType="string"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1033680971" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.362679811" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1895838080" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
|
||||
<option id="gnu.cpp.link.option.libs.1363675797" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
|
||||
<listOptionValue builtIn="false" value="wpi"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.link.option.paths.1566479969" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value=""${WPILIB}/cpp/current/lib""/>
|
||||
</option>
|
||||
<option id="gnu.cpp.link.option.flags.675338432" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="-Wl,-rpath,/opt/GenICam_v2_3/bin/Linux_armv7-a,-rpath,/usr/local/frc/rpath-lib" valueType="string"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.132949138" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.412234585" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.1047448065" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1542016468" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751.2017904325">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751.2017904325" moduleId="org.eclipse.cdt.core.settings" name="linux_simulate">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="FRCUserProgram" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="linux_simulate" id="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751.2017904325" name="linux_simulate" parent="cdt.managedbuild.config.gnu.cross.exe.debug">
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751.2017904325." name="/" resourcePath="">
|
||||
<toolChain errorParsers="" id="cdt.managedbuild.toolchain.gnu.base.1184188597" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE" id="cdt.managedbuild.target.gnu.platform.base.1621111203" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
|
||||
<builder buildPath="${workspace_loc:/${ProjName}}/Simulate" errorParsers="org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.CWDLocator" id="cdt.managedbuild.target.gnu.builder.base.840272037" keepEnvironmentInBuildfile="false" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.158466008" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||
<tool commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" id="cdt.managedbuild.tool.gnu.cpp.compiler.base.2105416021" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
|
||||
<option id="gnu.cpp.compiler.option.include.paths.1645322059" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}}/src""/>
|
||||
<listOptionValue builtIn="false" value="${WPILIB}/simulation/include"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/gazebo-6.5"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/ignition/math2"/>
|
||||
<listOptionValue builtIn="false" value="/usr/include/sdformat-3.7"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.optimization.level.1648211502" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.option.debugging.level.937474733" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.option.preprocessor.def.1023092361" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols"/>
|
||||
<option id="gnu.cpp.compiler.option.dialect.std.1098415592" superClass="gnu.cpp.compiler.option.dialect.std" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.option.dialect.flags.389754588" superClass="gnu.cpp.compiler.option.dialect.flags" value="-std=c++11" valueType="string"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1758810658" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.2039239712" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
|
||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.2100353684" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
|
||||
<option id="gnu.c.compiler.option.debugging.level.1900634657" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
|
||||
<option id="gnu.c.compiler.option.dialect.std.1352883605" superClass="gnu.c.compiler.option.dialect.std" value="gnu.c.compiler.dialect.default" valueType="enumerated"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1197133064" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.66697269" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.2094820582" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
|
||||
<option id="gnu.cpp.link.option.libs.1563598353" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
|
||||
<listOptionValue builtIn="false" value="wpilibcSim"/>
|
||||
<listOptionValue builtIn="false" value="gz_msgs"/>
|
||||
<listOptionValue builtIn="false" value="ntcore"/>
|
||||
<listOptionValue builtIn="false" value="gazebo_client"/>
|
||||
<listOptionValue builtIn="false" value="boost_system"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.link.option.paths.1677933356" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
|
||||
<listOptionValue builtIn="false" value="/usr/lib/x86_64-linux-gnu"/>
|
||||
<listOptionValue builtIn="false" value="${WPILIB}/simulation/lib"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.link.option.other.1549699992" superClass="gnu.cpp.link.option.other" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="-rpath ${WPILIB}/simulation/lib"/>
|
||||
</option>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.152327207" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.assembler.base.2105089872" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.254601899" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128" moduleId="org.eclipse.cdt.core.settings" name="Windows Simulate">
|
||||
<externalSettings>
|
||||
<externalSetting>
|
||||
<entry flags="RESOLVED" kind="includePath" name="${WPILIB}\cpp\current\include"/>
|
||||
<entry flags="RESOLVED" kind="includePath" name="C:\Program Files\Gazebo\gazebo\build\install\Debug\include"/>
|
||||
<entry flags="RESOLVED" kind="includePath" name="C:\Program Files\Gazebo\sdformat\build\install\Debug\include"/>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="includePath" name="/GearsBotCPPWin/src"/>
|
||||
</externalSetting>
|
||||
</externalSettings>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="exe" artifactName="FRCUserProgram" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="Windows Simulate" errorParsers="org.eclipse.cdt.core.VCErrorParser" id="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128" name="Windows Simulate" parent="cdt.managedbuild.config.gnu.mingw.exe.debug" postannouncebuildStep="" postbuildStep="" preannouncebuildStep="setup environment variables" prebuildStep="">
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128." name="/" resourcePath="">
|
||||
<toolChain errorParsers="" id="cdt.managedbuild.toolchain.gnu.cross.base.592056279" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.base">
|
||||
<option id="cdt.managedbuild.option.gnu.cross.prefix.773876502" name="Prefix" superClass="cdt.managedbuild.option.gnu.cross.prefix"/>
|
||||
<option id="cdt.managedbuild.option.gnu.cross.path.1970286339" name="Path" superClass="cdt.managedbuild.option.gnu.cross.path"/>
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1773189260" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
|
||||
<builder buildPath="${workspace_loc:/GearsBotCPPWIN}/Windows Simulate" errorParsers="" id="org.eclipse.cdt.build.core.internal.builder.132963544" keepEnvironmentInBuildfile="false" name="CDT Internal Builder" superClass="org.eclipse.cdt.build.core.internal.builder"/>
|
||||
<tool command="gcc" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="" id="cdt.managedbuild.tool.gnu.cross.c.compiler.1872033968" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
|
||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.172352140" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
|
||||
<option id="gnu.c.compiler.option.debugging.level.273333971" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.default" valueType="enumerated"/>
|
||||
<option id="gnu.c.compiler.option.misc.other.1387357347" name="Other flags" superClass="gnu.c.compiler.option.misc.other" useByScannerDiscovery="false" value="-c" valueType="string"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1953150292" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool command=""C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\amd64\cl"" commandLinePattern="${COMMAND} ${FLAGS} /Fo${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} /wd4068 /EHsc" errorParsers="" id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.809153465" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
|
||||
<option id="gnu.cpp.compiler.option.include.paths.599803694" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/src}""/>
|
||||
<listOptionValue builtIn="false" value=""${WPILIB}\simulation\include""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files (x86)\Windows Kits\8.1\Include\um""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files (x86)\Windows Kits\8.1\Include\winrt""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files (x86)\Windows Kits\8.1\Include\shared""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\gazebo\build\install\Debug\include\gazebo-6.0""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\sdformat\build\install\Debug\include\sdformat-3.0""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\ign-math\build\install\Debug\include\ignition\math2""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\FreeImage-vc12-x64-release-debug\Source""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\protobuf-2.6.0-win64-vc12\src""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\dlfcn-win32-vc12-x64-release-debug\build\install\Debug\include""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\tbb43_20141023oss\include""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\sdformat\src\win\tinyxml""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\pthread-w32\include""/>
|
||||
<listOptionValue builtIn="false" value=""C:\Program Files\Gazebo\boost_1_56_0""/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.optimization.level.1265709272" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.option.debugging.level.1058836115" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.option.dialect.std.2006680120" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.default" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.option.warnings.allwarn.2144515316" name="All warnings (-Wall)" superClass="gnu.cpp.compiler.option.warnings.allwarn" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
||||
<option id="gnu.cpp.compiler.option.other.other.1677876881" name="Other flags" superClass="gnu.cpp.compiler.option.other.other" useByScannerDiscovery="false" value="/c /MDd" valueType="string"/>
|
||||
<option id="gnu.cpp.compiler.option.other.pic.594318292" name="Position Independent Code (-fPIC)" superClass="gnu.cpp.compiler.option.other.pic" useByScannerDiscovery="false" value="false" valueType="boolean"/>
|
||||
<option id="gnu.cpp.compiler.option.preprocessor.def.1865235685" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="_USE_MATH_DEFINES"/>
|
||||
<listOptionValue builtIn="false" value="WIN32_LEAN_AND_MEAN"/>
|
||||
<listOptionValue builtIn="false" value="NOMINMAX"/>
|
||||
<listOptionValue builtIn="false" value="FRC_SIMULATOR"/>
|
||||
</option>
|
||||
<option id="gnu.cpp.compiler.option.debugging.other.183827657" name="Other debugging flags" superClass="gnu.cpp.compiler.option.debugging.other" useByScannerDiscovery="false" value="/Z7" valueType="string"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1150869869" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.1090661906" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
|
||||
<tool command=""C:\Program Files (x86)\Microsoft Visual Studio 12.0\vc\bin\link"" commandLinePattern="${COMMAND} /ignore:4099 /LIBPATH:"C:\Program Files\Gazebo\FreeImage-vc12-x64-release-debug\x64\Debug\DLL" /LIBPATH:"C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64" /LIBPATH:"C:\Program Files\Gazebo\boost_1_56_0\lib64-msvc-12.0" /LIBPATH:"${WPILIB}\simulation\lib" /LIBPATH:"C:\Program Files\Gazebo\dlfcn-win32-vc12-x64-release-debug\build\install\Debug\lib" /LIBPATH:"C:\Program Files\Gazebo\pthread-w32\lib\x64" /LIBPATH:"C:\Program Files\Gazebo\ign-math\build\install\Debug\lib" /LIBPATH:"C:\Program Files\Gazebo\libcurl-vc12-x64-release-debug-static-ipv6-sspi-winssl\Debug\lib" /LIBPATH:"C:\Program Files\Gazebo\sdformat\build\install\Debug\lib" /LIBPATH:"C:\Program Files\Gazebo\protobuf-2.6.0-win64-vc12\vsprojects\Debug" /LIBPATH:"C:\Program Files\Gazebo\gazebo\build\install\Debug\lib" /LIBPATH:"C:\Program Files\Gazebo\tbb43_20141023oss\lib\intel64\vc12" /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64" /LIBPATH:"C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64" ${FLAGS} /OUT:${OUTPUT_PREFIX}${OUTPUT} ${INPUTS} /DEBUG WPILibSim.lib gazebo.lib gazebo_transport.lib gazebo_msgs.lib gazebo_common.lib gazebo_util.lib gazebo_client.lib gazebo_math.lib libprotobuf.lib sdformat.lib dl.lib libcurl_a_debug.lib ignition-math2.lib pthreadVC2.lib gz_msgs.lib IPHlpApi.lib /NODEFAULTLIB:libboost_system-vc120-mt-gd-1_56.lib /NODEFAULTLIB:libboost_thread-vc120-mt-gd-1_56.lib FreeImaged.lib" errorParsers="" id="cdt.managedbuild.tool.gnu.cross.cpp.linker.680547965" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
|
||||
<option id="gnu.cpp.link.option.libs.231732731" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs"/>
|
||||
<option id="gnu.cpp.link.option.paths.122555745" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths"/>
|
||||
<option id="gnu.cpp.link.option.shared.1816604740" name="Shared (-shared)" superClass="gnu.cpp.link.option.shared" value="false" valueType="boolean"/>
|
||||
<option id="gnu.cpp.link.option.flags.761367792" name="Linker flags" superClass="gnu.cpp.link.option.flags" value="" valueType="string"/>
|
||||
<option id="gnu.cpp.link.option.other.715702568" name="Other options (-Xlinker [option])" superClass="gnu.cpp.link.option.other"/>
|
||||
<option id="gnu.cpp.link.option.userobjs.984105280" name="Other objects" superClass="gnu.cpp.link.option.userobjs"/>
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1789925387" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
<outputType id="cdt.managedbuild.tool.gnu.cpp.linker.output.so.1893130812" outputPrefix="" superClass="cdt.managedbuild.tool.gnu.cpp.linker.output.so"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.976699519" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
|
||||
<tool command="as" commandLinePattern="${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}" errorParsers="" id="cdt.managedbuild.tool.gnu.cross.assembler.10555843" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.219135409" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
<sourceEntries>
|
||||
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="src"/>
|
||||
</sourceEntries>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="GearsBotCPP.cdt.managedbuild.target.gnu.cross.exe.13534228" name="Executable" projectType="cdt.managedbuild.target.gnu.cross.exe"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||
<configuration configurationName="Windows Simulate"/>
|
||||
<configuration configurationName="Simulate">
|
||||
<resource resourceType="PROJECT" workspacePath="/GearsBotCPP"/>
|
||||
</configuration>
|
||||
<configuration configurationName="Debug">
|
||||
<resource resourceType="PROJECT" workspacePath="/GearsBotCPP"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.809153465;cdt.managedbuild.tool.gnu.cpp.compiler.input.1150869869">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;org.eclipse.cdt.msvc.cl.dll.debug.544581750;org.eclipse.cdt.msvc.cl.inputType.1806965547">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.msw.build.clScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;org.eclipse.cdt.msvc.cl.c.dll.debug.748290057;org.eclipse.cdt.msvc.cl.inputType.c.690275938">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.msw.build.clScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;cdt.managedbuild.tool.gnu.cross.c.compiler.1872033968;cdt.managedbuild.tool.gnu.c.compiler.input.1953150292">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;org.eclipse.cdt.msvc.cl.dll.debug.880390044;org.eclipse.cdt.msvc.cl.inputType.393977355">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.msw.build.clScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.base.1297766759;cdt.managedbuild.tool.gnu.cpp.compiler.input.498113544">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;cdt.managedbuild.tool.gnu.c.compiler.mingw.exe.debug.785693711;cdt.managedbuild.tool.gnu.c.compiler.input.778242069">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;cdt.managedbuild.tool.gnu.cpp.compiler.mingw.exe.debug.1647706237;cdt.managedbuild.tool.gnu.cpp.compiler.input.1338339147">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751;cdt.managedbuild.config.gnu.cross.exe.debug.1104744751.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.1505235107;cdt.managedbuild.tool.gnu.cpp.compiler.input.1033680971">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.debug.1104744751;cdt.managedbuild.config.gnu.cross.exe.debug.1104744751.;cdt.managedbuild.tool.gnu.cross.c.compiler.1261239456;cdt.managedbuild.tool.gnu.c.compiler.input.1793678673">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;org.eclipse.cdt.msvc.cl.c.dll.debug.1658947706;org.eclipse.cdt.msvc.cl.inputType.c.2076377067">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.msw.build.clScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128;cdt.managedbuild.config.gnu.mingw.exe.debug.912379410.387599128.;cdt.managedbuild.tool.gnu.c.compiler.mingw.base.510224028;cdt.managedbuild.tool.gnu.c.compiler.input.323654435">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
</cproject>
|
1
Robot2016/.gitignore
vendored
Normal file
1
Robot2016/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/Debug/
|
28
Robot2016/.project
Normal file
28
Robot2016/.project
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Robot2016</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||
<triggers>clean,full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>edu.wpi.first.wpilib.plugins.core.nature.FRCProjectNature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
@ -0,0 +1,13 @@
|
||||
eclipse.preferences.version=1
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/CPATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/CPATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/CPLUS_INCLUDE_PATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/CPLUS_INCLUDE_PATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/C_INCLUDE_PATH/delimiter=;
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/C_INCLUDE_PATH/operation=remove
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/append=true
|
||||
environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/appendContributed=true
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/LIBRARY_PATH/delimiter=;
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/LIBRARY_PATH/operation=remove
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/append=true
|
||||
environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.cross.exe.debug.1104744751/appendContributed=true
|
11
Robot2016/build.properties
Normal file
11
Robot2016/build.properties
Normal file
@ -0,0 +1,11 @@
|
||||
# Build information
|
||||
out=FRCUserProgram
|
||||
src.dir=src
|
||||
build.dir=build
|
||||
out.exe=Debug/${out}
|
||||
|
||||
# Simulation
|
||||
simulation.world.file=/usr/share/frcsim/worlds/GearsBotDemo.world
|
||||
|
||||
# Use the current C++ library by default
|
||||
cpp-version=current
|
28
Robot2016/build.xml
Normal file
28
Robot2016/build.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project name="FRC Deployment" default="deploy">
|
||||
|
||||
<!--
|
||||
The following properties can be defined to override system level
|
||||
settings. These should not be touched unless you know what you're
|
||||
doing. The primary use is to override the wpilib version when
|
||||
working with older robots that can't compile with the latest
|
||||
libraries.
|
||||
-->
|
||||
|
||||
<!-- By default the system version of WPI is used -->
|
||||
<!-- <property name="version" value=""/> -->
|
||||
|
||||
<!-- By default the system team number is used -->
|
||||
<!-- <property name="team-number" value=""/> -->
|
||||
|
||||
<!-- By default the target is set to 10.TE.AM.2 -->
|
||||
<!-- <property name="target" value=""/> -->
|
||||
|
||||
<property file="${user.home}/wpilib/wpilib.properties"/>
|
||||
<property file="build.properties"/>
|
||||
<property file="${user.home}/wpilib/cpp/${version}/ant/build.properties"/>
|
||||
|
||||
<import file="${wpilib.ant.dir}/build.xml"/>
|
||||
|
||||
</project>
|
162
Robot2016/src/Robot.cpp
Normal file
162
Robot2016/src/Robot.cpp
Normal file
@ -0,0 +1,162 @@
|
||||
#include "WPILib.h"
|
||||
#include "Shooter.h"
|
||||
|
||||
#ifndef BUTTON_LAYOUT
|
||||
#define BUTTON_LAYOUT
|
||||
|
||||
#define TRIGGER 1 // Trigger button number
|
||||
#define THUMB 2 // Thumb button number
|
||||
#define RAMP_RAISE 3 // Button 3 for Raising Ramp
|
||||
#define RAMP_LOWER 4 // Button 4 to lower ramp.
|
||||
|
||||
#endif // BUTTON_LAYOUT
|
||||
|
||||
class Robot: public IterativeRobot
|
||||
{
|
||||
Talon left_drive, right_drive;
|
||||
CANTalon shooter1, shooter2,
|
||||
ramp;
|
||||
RobotDrive drive;
|
||||
Shooter shooter;
|
||||
Joystick driver_stick, operator_stick;
|
||||
float power;
|
||||
public:
|
||||
Robot():
|
||||
left_drive(0), // Left DriveTrain Talons plug into PWM channel 1 with a Y-splitter
|
||||
right_drive(1), // Right DriveTrain Talons plug // left wheel 2
|
||||
shooter1(11), // shooter drive 1
|
||||
shooter2(10), // shooter drive 2
|
||||
ramp(12),
|
||||
drive(&left_drive, &right_drive),
|
||||
shooter( // initialize Shooter object.
|
||||
&shooter1, &shooter2, &ramp),
|
||||
driver_stick(0), // right stick (operator)
|
||||
operator_stick(1) // left stick (driver)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private:
|
||||
// instance variables
|
||||
bool pickupRunning; // don't want to spam the Talon with set messages. Toggle the pickup when a button is pressed or released.
|
||||
bool inverting;
|
||||
|
||||
LiveWindow *lw = LiveWindow::GetInstance();
|
||||
SendableChooser *chooser;
|
||||
const std::string autoNameDefault = "Default";
|
||||
const std::string autoNameCustom = "My Auto";
|
||||
std::string autoSelected;
|
||||
|
||||
void RobotInit()
|
||||
{
|
||||
chooser = new SendableChooser();
|
||||
chooser->AddDefault(autoNameDefault, (void*)&autoNameDefault);
|
||||
chooser->AddObject(autoNameCustom, (void*)&autoNameCustom);
|
||||
SmartDashboard::PutData("Auto Modes", chooser);
|
||||
ramp.Enable();
|
||||
shooter1.Enable();
|
||||
shooter2.Enable();
|
||||
left_drive.SetInverted(true);
|
||||
right_drive.SetInverted(true);
|
||||
inverting = false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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 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 if-else structure below with additional strings.
|
||||
* If using the SendableChooser make sure to add them to the chooser code above as well.
|
||||
*/
|
||||
void AutonomousInit()
|
||||
{
|
||||
shooter.CalibrateRamp();
|
||||
shooter.SetRamp(Shoot);
|
||||
|
||||
autoSelected = *((std::string*)chooser->GetSelected());
|
||||
//std::string autoSelected = SmartDashboard::GetString("Auto Selector", autoNameDefault);
|
||||
std::cout << "Auto selected: " << autoSelected << std::endl;
|
||||
|
||||
if(autoSelected == autoNameCustom){
|
||||
//Custom Auto goes here
|
||||
} else {
|
||||
//Default Auto goes here
|
||||
}
|
||||
}
|
||||
|
||||
void AutonomousPeriodic()
|
||||
{
|
||||
if(autoSelected == autoNameCustom){
|
||||
//Custom Auto goes here
|
||||
} else {
|
||||
//Default Auto goes here
|
||||
}
|
||||
}
|
||||
|
||||
void TeleopInit()
|
||||
{
|
||||
shooter.CalibrateRamp();
|
||||
shooter.SetRamp(Shoot); // start in the full up position!
|
||||
power = 0;
|
||||
}
|
||||
|
||||
void TeleopPeriodic()
|
||||
{
|
||||
std::cout << "Ramp position: "<< ramp.GetEncPosition() << std::endl;
|
||||
drive.ArcadeDrive(&driver_stick, true);
|
||||
|
||||
// This is shit code for testing. Replace it with real code.
|
||||
if(operator_stick.GetRawButton(RAMP_RAISE))
|
||||
{
|
||||
ramp.Set(1);
|
||||
}
|
||||
else if(operator_stick.GetRawButton(RAMP_LOWER))
|
||||
{
|
||||
ramp.Set(-1);
|
||||
}
|
||||
else
|
||||
{
|
||||
ramp.Set(0);
|
||||
}
|
||||
|
||||
if(operator_stick.GetRawButton(THUMB) && !pickupRunning)
|
||||
{
|
||||
shooter.PickUp();
|
||||
pickupRunning = true;
|
||||
}
|
||||
else if(pickupRunning)
|
||||
{
|
||||
shooter.PickUp(false);
|
||||
pickupRunning = false;
|
||||
}
|
||||
|
||||
if(driver_stick.GetRawButton(THUMB) && !inverting)
|
||||
{
|
||||
left_drive.SetInverted(!left_drive.GetInverted());
|
||||
right_drive.SetInverted(!right_drive.GetInverted());
|
||||
inverting = true;
|
||||
}
|
||||
else if(!driver_stick.GetRawButton(THUMB))
|
||||
{
|
||||
inverting = false;
|
||||
}
|
||||
|
||||
if(((1.0 - operator_stick.GetThrottle()) / 2.0) > power + 0.005||((1.0 - operator_stick.GetThrottle()) / 2.0) < power -0.005)
|
||||
{
|
||||
power = (1.0 - operator_stick.GetThrottle()) / 2.0;
|
||||
shooter.SetPower(power);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TestPeriodic()
|
||||
{
|
||||
lw->Run();
|
||||
}
|
||||
};
|
||||
|
||||
START_ROBOT_CLASS(Robot)
|
121
Robot2016/src/Shooter.h
Normal file
121
Robot2016/src/Shooter.h
Normal file
@ -0,0 +1,121 @@
|
||||
/*
|
||||
* Shooter.h
|
||||
*
|
||||
* Created on: Feb 2, 2016
|
||||
* Author: Jason
|
||||
*/
|
||||
|
||||
#ifndef SRC_SHOOTER_H_
|
||||
#define SRC_SHOOTER_H_
|
||||
|
||||
#define PICKUP_POWER 0.8
|
||||
#define RAMP_LOWER_DURATION 2 //Rotations.
|
||||
|
||||
|
||||
/**
|
||||
* You can use the values assigned to each of these values as the number
|
||||
* of rotations to run the motor down from the "Shoot" position.
|
||||
*
|
||||
* This might not be the best way to do it, and also requires that we
|
||||
* figure out how to read the Hall Effect signal from the motor.
|
||||
*/
|
||||
enum RampState {
|
||||
Shoot = 0, // 0 rotations
|
||||
Half = (RAMP_LOWER_DURATION / 2), // 1 rotation?
|
||||
Down = RAMP_LOWER_DURATION, // 2 rotations?
|
||||
Uncalibrated = -1,
|
||||
Transitioning = -2
|
||||
};
|
||||
|
||||
class Shooter {
|
||||
public:
|
||||
/**
|
||||
* Shooter talons and ramp talon.
|
||||
* s2 is also for the pickup-mechanism and can be controlled independently.
|
||||
*
|
||||
*/
|
||||
Shooter(CANTalon *s1, CANTalon *s2, CANTalon *r) {
|
||||
// shooterDrive = new RobotDrive(s1, s2);
|
||||
launcher = s1;
|
||||
pickup = s2;
|
||||
ramp = r;
|
||||
rampState = Uncalibrated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this method on TeleopInit so that the ramp is properly
|
||||
* set at the beginning of the match.
|
||||
*/
|
||||
RampState CalibrateRamp() {
|
||||
// TODO:
|
||||
// Raise ramp until limit switch is triggered,
|
||||
// then lower the ramp to its lower limit.
|
||||
|
||||
return Down;
|
||||
}
|
||||
|
||||
virtual ~Shooter() {
|
||||
delete launcher;
|
||||
delete pickup;
|
||||
delete ramp;
|
||||
}
|
||||
|
||||
void PickUp(bool state = true) {
|
||||
pickup->Set((float) (state * PICKUP_POWER));
|
||||
std::cout << "picking up!\n";
|
||||
}
|
||||
|
||||
void SetRamp(RampState state) {
|
||||
// TODO:
|
||||
// Move the Ramp to the set position.
|
||||
switch (state)
|
||||
{
|
||||
case Shoot:
|
||||
{
|
||||
if (ramp->GetForwardLimitOK())
|
||||
{
|
||||
ramp->Set(1);
|
||||
} else
|
||||
{
|
||||
ramp->Set(0);
|
||||
}
|
||||
}
|
||||
case Half:
|
||||
{
|
||||
//yeah, put something here when you get the encoder working.
|
||||
std::cout << "Hey! Didja install an encoder? Because this is placeholder that Aidan would have removed if you had installed one and told him about it.\n";
|
||||
}
|
||||
case Down:
|
||||
{
|
||||
//see half.
|
||||
std::cout << "Hey! Didja install an encoder? Because this is placeholder that Aidan would have removed if you had installed one and told him about it.\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Call this to run the pickup backwards if the ball gets jammed somehow...
|
||||
*/
|
||||
void Unjam()
|
||||
{
|
||||
pickup->Set(-1 * PICKUP_POWER);
|
||||
}
|
||||
|
||||
void SetPower(float power) {
|
||||
pickup->Set(power);
|
||||
launcher->Set(power);
|
||||
std::cout << "setting shooter power" << std::endl;
|
||||
}
|
||||
private:
|
||||
|
||||
RobotDrive *shooterDrive;
|
||||
CANTalon *launcher;
|
||||
CANTalon *pickup;
|
||||
CANTalon *ramp;
|
||||
|
||||
RampState rampState;
|
||||
RampState targetState;
|
||||
RampState previousState;
|
||||
};
|
||||
|
||||
#endif /* SRC_SHOOTER_H_ */
|
BIN
Robot2016/wpilib/cpp/current/ant/ant-classloadertask.jar
Normal file
BIN
Robot2016/wpilib/cpp/current/ant/ant-classloadertask.jar
Normal file
Binary file not shown.
BIN
Robot2016/wpilib/cpp/current/ant/ant-contrib.jar
Normal file
BIN
Robot2016/wpilib/cpp/current/ant/ant-contrib.jar
Normal file
Binary file not shown.
22
Robot2016/wpilib/cpp/current/ant/build.properties
Normal file
22
Robot2016/wpilib/cpp/current/ant/build.properties
Normal file
@ -0,0 +1,22 @@
|
||||
# Deployment information
|
||||
username=lvuser
|
||||
password=
|
||||
deploy.dir=/home/lvuser
|
||||
deploy.kill.command=/usr/local/frc/bin/frcKillRobot.sh -t -r
|
||||
command.dir=/home/lvuser/
|
||||
|
||||
# Libraries to use
|
||||
wpilib=${user.home}/wpilib/cpp/${cpp-version}
|
||||
wpilib.lib=${wpilib}/lib
|
||||
roboRIOAllowedImages=19
|
||||
|
||||
# Ant support
|
||||
wpilib.ant.dir=${wpilib}/ant
|
||||
jsch.jar=${wpilib.ant.dir}/jsch-0.1.50.jar
|
||||
classloadertask.jar=${wpilib.ant.dir}/ant-classloadertask.jar
|
||||
|
||||
#simulation stuff
|
||||
sim.exe=linux_simulate/${out}
|
||||
wpilib.sim=${wpilib}/sim
|
||||
sim.tools=${wpilib.sim}/tools
|
||||
sim.lib=${wpilib.sim}/lib
|
132
Robot2016/wpilib/cpp/current/ant/build.xml
Normal file
132
Robot2016/wpilib/cpp/current/ant/build.xml
Normal file
@ -0,0 +1,132 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project name="athena-project-build" default="deploy">
|
||||
|
||||
<!-- Load Tasks -->
|
||||
<taskdef resource="net/sf/antcontrib/antlib.xml">
|
||||
<classpath>
|
||||
<pathelement location="${wpilib.ant.dir}/ant-contrib.jar"/>
|
||||
</classpath>
|
||||
</taskdef>
|
||||
<taskdef resource="net/jtools/classloadertask/antlib.xml" classpath="${classloadertask.jar}"/>
|
||||
<classloader loader="system" classpath="${jsch.jar}"/>
|
||||
|
||||
<target name="clean" description="Clean up all build and distribution artifacts.">
|
||||
<delete dir="${build.dir}"/>
|
||||
<delete dir="${dist.dir}"/>
|
||||
</target>
|
||||
|
||||
<!-- Targets -->
|
||||
|
||||
<target name="get-target-ip">
|
||||
<property name="ant.enable.asserts" value="true"/>
|
||||
<assert name="team-number" exists="true" message="Team number not set. Go to Window->Preferences->WPILib Preferences to set it."/>
|
||||
<property name="target" value="roboRIO-${team-number}-FRC.local" />
|
||||
<echo>Trying Target: ${target}</echo>
|
||||
<if>
|
||||
<isreachable host="${target}" timeout="5"/>
|
||||
<then>
|
||||
<echo>roboRIO found via mDNS</echo>
|
||||
</then>
|
||||
<else>
|
||||
<var name="target" unset="true"/>
|
||||
<echo> roboRIO not found via mDNS, falling back to static USB</echo>
|
||||
<property name="target" value="172.22.11.2"/>
|
||||
<if>
|
||||
<isreachable host="${target}" timeout="5"/>
|
||||
<then>
|
||||
<echo>roboRIO found via static USB</echo>
|
||||
</then>
|
||||
<else>
|
||||
<var name="target" unset="true"/>
|
||||
<math result="ip.upper" operand1="${team-number}" operation="/" operand2="100" datatype="int"/>
|
||||
<math result="ip.lower" operand1="${team-number}" operation="%" operand2="100" datatype="int"/>
|
||||
<property name="target" value="10.${ip.upper}.${ip.lower}.2"/>
|
||||
<echo>roboRIO not found via USB, falling back to static address of ${target}</echo>
|
||||
<assert name="roboRIOFound" message="roboRIO not found, please check that the roboRIO is connected, imaged and that the team number is set properly in Eclipse">
|
||||
<bool>
|
||||
<isreachable host="${target}" timeout="5"/>
|
||||
</bool>
|
||||
</assert>
|
||||
<echo>roboRIO found via Ethernet static</echo>
|
||||
</else>
|
||||
</if>
|
||||
</else>
|
||||
</if>
|
||||
</target>
|
||||
|
||||
<target name="deploy" depends="get-target-ip, dependencies" description="Deploy the progam and start it running.">
|
||||
<sshexec host="${target}"
|
||||
username="${username}"
|
||||
password="${password}"
|
||||
trust="true"
|
||||
failonerror="no"
|
||||
command="rm -f ${deploy.dir}/FRCUserProgram" />
|
||||
|
||||
<echo>[athena-deploy] Copying code over.</echo>
|
||||
<scp file="${out.exe}" sftp="true" todir="${username}@${target}:${deploy.dir}" password="${password}" trust="true"/>
|
||||
|
||||
<!-- Suppress the exit status so that if no netconsole was running then
|
||||
it doesn't show up red on the output. -->
|
||||
<sshexec host="${target}"
|
||||
username="admin"
|
||||
password="${password}"
|
||||
trust="true"
|
||||
failonerror="false"
|
||||
command="killall -q netconsole-host || :"/>
|
||||
|
||||
<scp file="${wpilib.ant.dir}/robotCommand" todir="${username}@${target}:/home/lvuser/" password="${password}" trust="true"/>
|
||||
|
||||
<echo>[athena-deploy] Starting program.</echo>
|
||||
<sshexec host="${target}"
|
||||
username="${username}"
|
||||
password="${password}"
|
||||
trust="true"
|
||||
failonerror="false"
|
||||
command=". /etc/profile.d/natinst-path.sh; chmod a+x ${deploy.dir}/${out}; ${deploy.kill.command};"/>
|
||||
|
||||
<sshexec host="${target}"
|
||||
username="${username}"
|
||||
password="${password}"
|
||||
trust="true"
|
||||
command="sync" />
|
||||
|
||||
</target>
|
||||
|
||||
<target name="kill-program" depends="get-target-ip" description="Kill the currently running FRC program">
|
||||
<sshexec host="${target}"
|
||||
username="${username}"
|
||||
password="${password}"
|
||||
trust="true"
|
||||
failonerror="false"
|
||||
command=". /etc/profile.d/natinst-path.sh; /usr/local/frc/bin/frcKillRobot.sh -t"/>
|
||||
</target>
|
||||
|
||||
<!-- Simulation support -->
|
||||
<target name="simulate">
|
||||
<parallel>
|
||||
<sequential>
|
||||
<echo>[simulate] You may now run Gazebo and your driver station</echo>
|
||||
<echo>[simulate] Running Code.</echo>
|
||||
<exec executable="${sim.exe}"></exec>
|
||||
</sequential>
|
||||
</parallel>
|
||||
</target>
|
||||
|
||||
<target name="dependencies" depends="get-target-ip">
|
||||
<property name="ant.enable.asserts" value="true"/>
|
||||
<post to="http://${target}/nisysapi/server" logfile="sysProps.xml" verbose="false" encoding="UTF-16LE" append="false">
|
||||
<prop name="Function" value="GetPropertiesOfItem"/>
|
||||
<prop name="Plugins" value="nisyscfg"/>
|
||||
<prop name="Items" value="system"/>
|
||||
</post>
|
||||
<loadfile srcFile="sysProps.xml" encoding="UTF-16LE" property="roboRIOSysValues"/>
|
||||
<propertyregex property="roboRIOImage" input="${roboRIOSysValues}" regexp="FRC_roboRIO_2016_v([0-9]+)" select="\1" defaultValue="ImageRegExFail"/>
|
||||
<assert message="roboRIO Image does not match plugin, allowed image version: ${roboRIOAllowedImages}">
|
||||
<bool>
|
||||
<contains string="${roboRIOAllowedImages}" substring="${roboRIOImage}"/>
|
||||
</bool>
|
||||
</assert>
|
||||
<echo>roboRIO image version validated</echo>
|
||||
</target>
|
||||
</project>
|
BIN
Robot2016/wpilib/cpp/current/ant/jsch-0.1.50.jar
Normal file
BIN
Robot2016/wpilib/cpp/current/ant/jsch-0.1.50.jar
Normal file
Binary file not shown.
1
Robot2016/wpilib/cpp/current/ant/robotCommand
Normal file
1
Robot2016/wpilib/cpp/current/ant/robotCommand
Normal file
@ -0,0 +1 @@
|
||||
/usr/local/frc/bin/netconsole-host /home/lvuser/FRCUserProgram
|
79
Robot2016/wpilib/cpp/current/include/ADXL345_I2C.h
Normal file
79
Robot2016/wpilib/cpp/current/include/ADXL345_I2C.h
Normal file
@ -0,0 +1,79 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "interfaces/Accelerometer.h"
|
||||
#include "I2C.h"
|
||||
#include "LiveWindow/LiveWindowSendable.h"
|
||||
#include <memory>
|
||||
|
||||
/**
|
||||
* ADXL345 Accelerometer on I2C.
|
||||
*
|
||||
* This class allows access to a Analog Devices ADXL345 3-axis accelerometer on
|
||||
* an I2C bus.
|
||||
* This class assumes the default (not alternate) sensor address of 0x1D (7-bit
|
||||
* address).
|
||||
*/
|
||||
class ADXL345_I2C : public Accelerometer,
|
||||
public I2C,
|
||||
public LiveWindowSendable {
|
||||
protected:
|
||||
static const uint8_t kAddress = 0x1D;
|
||||
static const uint8_t kPowerCtlRegister = 0x2D;
|
||||
static const uint8_t kDataFormatRegister = 0x31;
|
||||
static const uint8_t kDataRegister = 0x32;
|
||||
static constexpr double kGsPerLSB = 0.00390625;
|
||||
enum PowerCtlFields {
|
||||
kPowerCtl_Link = 0x20,
|
||||
kPowerCtl_AutoSleep = 0x10,
|
||||
kPowerCtl_Measure = 0x08,
|
||||
kPowerCtl_Sleep = 0x04
|
||||
};
|
||||
enum DataFormatFields {
|
||||
kDataFormat_SelfTest = 0x80,
|
||||
kDataFormat_SPI = 0x40,
|
||||
kDataFormat_IntInvert = 0x20,
|
||||
kDataFormat_FullRes = 0x08,
|
||||
kDataFormat_Justify = 0x04
|
||||
};
|
||||
|
||||
public:
|
||||
enum Axes { kAxis_X = 0x00, kAxis_Y = 0x02, kAxis_Z = 0x04 };
|
||||
struct AllAxes {
|
||||
double XAxis;
|
||||
double YAxis;
|
||||
double ZAxis;
|
||||
};
|
||||
|
||||
public:
|
||||
explicit ADXL345_I2C(Port port, Range range = kRange_2G, int deviceAddress = kAddress);
|
||||
virtual ~ADXL345_I2C() = default;
|
||||
|
||||
ADXL345_I2C(const ADXL345_I2C&) = delete;
|
||||
ADXL345_I2C& operator=(const ADXL345_I2C&) = delete;
|
||||
|
||||
// Accelerometer interface
|
||||
virtual void SetRange(Range range) override;
|
||||
virtual double GetX() override;
|
||||
virtual double GetY() override;
|
||||
virtual double GetZ() override;
|
||||
|
||||
virtual double GetAcceleration(Axes axis);
|
||||
virtual AllAxes GetAccelerations();
|
||||
|
||||
virtual std::string GetSmartDashboardType() const override;
|
||||
virtual void InitTable(std::shared_ptr<ITable> subtable) override;
|
||||
virtual void UpdateTable() override;
|
||||
virtual std::shared_ptr<ITable> GetTable() const override;
|
||||
virtual void StartLiveWindowMode() override {}
|
||||
virtual void StopLiveWindowMode() override {}
|
||||
|
||||
private:
|
||||
std::shared_ptr<ITable> m_table;
|
||||
};
|
83
Robot2016/wpilib/cpp/current/include/ADXL345_SPI.h
Normal file
83
Robot2016/wpilib/cpp/current/include/ADXL345_SPI.h
Normal file
@ -0,0 +1,83 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "interfaces/Accelerometer.h"
|
||||
#include "SensorBase.h"
|
||||
#include "SPI.h"
|
||||
#include "LiveWindow/LiveWindowSendable.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
class DigitalInput;
|
||||
class DigitalOutput;
|
||||
|
||||
/**
|
||||
* ADXL345 Accelerometer on SPI.
|
||||
*
|
||||
* This class allows access to an Analog Devices ADXL345 3-axis accelerometer
|
||||
* via SPI.
|
||||
* This class assumes the sensor is wired in 4-wire SPI mode.
|
||||
*/
|
||||
class ADXL345_SPI : public Accelerometer,
|
||||
protected SPI,
|
||||
public LiveWindowSendable {
|
||||
protected:
|
||||
static const uint8_t kPowerCtlRegister = 0x2D;
|
||||
static const uint8_t kDataFormatRegister = 0x31;
|
||||
static const uint8_t kDataRegister = 0x32;
|
||||
static constexpr double kGsPerLSB = 0.00390625;
|
||||
enum SPIAddressFields { kAddress_Read = 0x80, kAddress_MultiByte = 0x40 };
|
||||
enum PowerCtlFields {
|
||||
kPowerCtl_Link = 0x20,
|
||||
kPowerCtl_AutoSleep = 0x10,
|
||||
kPowerCtl_Measure = 0x08,
|
||||
kPowerCtl_Sleep = 0x04
|
||||
};
|
||||
enum DataFormatFields {
|
||||
kDataFormat_SelfTest = 0x80,
|
||||
kDataFormat_SPI = 0x40,
|
||||
kDataFormat_IntInvert = 0x20,
|
||||
kDataFormat_FullRes = 0x08,
|
||||
kDataFormat_Justify = 0x04
|
||||
};
|
||||
|
||||
public:
|
||||
enum Axes { kAxis_X = 0x00, kAxis_Y = 0x02, kAxis_Z = 0x04 };
|
||||
struct AllAxes {
|
||||
double XAxis;
|
||||
double YAxis;
|
||||
double ZAxis;
|
||||
};
|
||||
|
||||
public:
|
||||
ADXL345_SPI(SPI::Port port, Range range = kRange_2G);
|
||||
virtual ~ADXL345_SPI() = default;
|
||||
|
||||
ADXL345_SPI(const ADXL345_SPI&) = delete;
|
||||
ADXL345_SPI& operator=(const ADXL345_SPI&) = delete;
|
||||
|
||||
// Accelerometer interface
|
||||
virtual void SetRange(Range range) override;
|
||||
virtual double GetX() override;
|
||||
virtual double GetY() override;
|
||||
virtual double GetZ() override;
|
||||
|
||||
virtual double GetAcceleration(Axes axis);
|
||||
virtual AllAxes GetAccelerations();
|
||||
|
||||
virtual std::string GetSmartDashboardType() const override;
|
||||
virtual void InitTable(std::shared_ptr<ITable> subtable) override;
|
||||
virtual void UpdateTable() override;
|
||||
virtual std::shared_ptr<ITable> GetTable() const override;
|
||||
virtual void StartLiveWindowMode() override {}
|
||||
virtual void StopLiveWindowMode() override {}
|
||||
|
||||
private:
|
||||
std::shared_ptr<ITable> m_table;
|
||||
};
|
63
Robot2016/wpilib/cpp/current/include/ADXL362.h
Normal file
63
Robot2016/wpilib/cpp/current/include/ADXL362.h
Normal file
@ -0,0 +1,63 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "interfaces/Accelerometer.h"
|
||||
#include "SensorBase.h"
|
||||
#include "SPI.h"
|
||||
#include "LiveWindow/LiveWindowSendable.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
class DigitalInput;
|
||||
class DigitalOutput;
|
||||
|
||||
/**
|
||||
* ADXL362 SPI Accelerometer.
|
||||
*
|
||||
* This class allows access to an Analog Devices ADXL362 3-axis accelerometer.
|
||||
*/
|
||||
class ADXL362 : public Accelerometer, public LiveWindowSendable {
|
||||
public:
|
||||
enum Axes { kAxis_X = 0x00, kAxis_Y = 0x02, kAxis_Z = 0x04 };
|
||||
struct AllAxes {
|
||||
double XAxis;
|
||||
double YAxis;
|
||||
double ZAxis;
|
||||
};
|
||||
|
||||
public:
|
||||
ADXL362(Range range = kRange_2G);
|
||||
ADXL362(SPI::Port port, Range range = kRange_2G);
|
||||
virtual ~ADXL362() = default;
|
||||
|
||||
ADXL362(const ADXL362&) = delete;
|
||||
ADXL362& operator=(const ADXL362&) = delete;
|
||||
|
||||
// Accelerometer interface
|
||||
virtual void SetRange(Range range) override;
|
||||
virtual double GetX() override;
|
||||
virtual double GetY() override;
|
||||
virtual double GetZ() override;
|
||||
|
||||
virtual double GetAcceleration(Axes axis);
|
||||
virtual AllAxes GetAccelerations();
|
||||
|
||||
virtual std::string GetSmartDashboardType() const override;
|
||||
virtual void InitTable(std::shared_ptr<ITable> subtable) override;
|
||||
virtual void UpdateTable() override;
|
||||
virtual std::shared_ptr<ITable> GetTable() const override;
|
||||
virtual void StartLiveWindowMode() override {}
|
||||
virtual void StopLiveWindowMode() override {}
|
||||
|
||||
private:
|
||||
SPI m_spi;
|
||||
double m_gsPerLSB = 0.001;
|
||||
|
||||
std::shared_ptr<ITable> m_table;
|
||||
};
|
43
Robot2016/wpilib/cpp/current/include/ADXRS450_Gyro.h
Normal file
43
Robot2016/wpilib/cpp/current/include/ADXRS450_Gyro.h
Normal file
@ -0,0 +1,43 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2015-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "GyroBase.h"
|
||||
#include "Notifier.h"
|
||||
#include "SPI.h"
|
||||
#include "HAL/cpp/priority_mutex.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
/**
|
||||
* Use a rate gyro to return the robots heading relative to a starting position.
|
||||
* The Gyro class tracks the robots heading based on the starting position. As
|
||||
* the robot rotates the new heading is computed by integrating the rate of
|
||||
* rotation returned by the sensor. When the class is instantiated, it does a
|
||||
* short calibration routine where it samples the gyro while at rest to
|
||||
* determine the default offset. This is subtracted from each sample to
|
||||
* determine the heading.
|
||||
*
|
||||
* This class is for the digital ADXRS450 gyro sensor that connects via SPI.
|
||||
*/
|
||||
class ADXRS450_Gyro : public GyroBase {
|
||||
public:
|
||||
ADXRS450_Gyro();
|
||||
explicit ADXRS450_Gyro(SPI::Port port);
|
||||
virtual ~ADXRS450_Gyro() = default;
|
||||
|
||||
float GetAngle() const override;
|
||||
double GetRate() const override;
|
||||
void Reset() override;
|
||||
void Calibrate() override;
|
||||
|
||||
private:
|
||||
SPI m_spi;
|
||||
|
||||
uint16_t ReadRegister(uint8_t reg);
|
||||
};
|
54
Robot2016/wpilib/cpp/current/include/AnalogAccelerometer.h
Normal file
54
Robot2016/wpilib/cpp/current/include/AnalogAccelerometer.h
Normal file
@ -0,0 +1,54 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "AnalogInput.h"
|
||||
#include "SensorBase.h"
|
||||
#include "PIDSource.h"
|
||||
#include "LiveWindow/LiveWindowSendable.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
/**
|
||||
* Handle operation of an analog accelerometer.
|
||||
* The accelerometer reads acceleration directly through the sensor. Many
|
||||
* sensors have
|
||||
* multiple axis and can be treated as multiple devices. Each is calibrated by
|
||||
* finding
|
||||
* the center value over a period of time.
|
||||
*/
|
||||
class AnalogAccelerometer : public SensorBase,
|
||||
public PIDSource,
|
||||
public LiveWindowSendable {
|
||||
public:
|
||||
explicit AnalogAccelerometer(int32_t channel);
|
||||
explicit AnalogAccelerometer(AnalogInput *channel);
|
||||
explicit AnalogAccelerometer(std::shared_ptr<AnalogInput> channel);
|
||||
virtual ~AnalogAccelerometer() = default;
|
||||
|
||||
float GetAcceleration() const;
|
||||
void SetSensitivity(float sensitivity);
|
||||
void SetZero(float zero);
|
||||
double PIDGet() override;
|
||||
|
||||
void UpdateTable() override;
|
||||
void StartLiveWindowMode() override;
|
||||
void StopLiveWindowMode() override;
|
||||
std::string GetSmartDashboardType() const override;
|
||||
void InitTable(std::shared_ptr<ITable> subTable) override;
|
||||
std::shared_ptr<ITable> GetTable() const override;
|
||||
|
||||
private:
|
||||
void InitAccelerometer();
|
||||
|
||||
std::shared_ptr<AnalogInput> m_analogInput;
|
||||
float m_voltsPerG = 1.0;
|
||||
float m_zeroGVoltage = 2.5;
|
||||
|
||||
std::shared_ptr<ITable> m_table;
|
||||
};
|
64
Robot2016/wpilib/cpp/current/include/AnalogGyro.h
Normal file
64
Robot2016/wpilib/cpp/current/include/AnalogGyro.h
Normal file
@ -0,0 +1,64 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "GyroBase.h"
|
||||
|
||||
class AnalogInput;
|
||||
|
||||
/**
|
||||
* Use a rate gyro to return the robots heading relative to a starting position.
|
||||
* The Gyro class tracks the robots heading based on the starting position. As
|
||||
* the robot
|
||||
* rotates the new heading is computed by integrating the rate of rotation
|
||||
* returned
|
||||
* by the sensor. When the class is instantiated, it does a short calibration
|
||||
* routine
|
||||
* where it samples the gyro while at rest to determine the default offset. This
|
||||
* is
|
||||
* subtracted from each sample to determine the heading. This gyro class must be
|
||||
* used
|
||||
* with a channel that is assigned one of the Analog accumulators from the FPGA.
|
||||
* See
|
||||
* AnalogInput for the current accumulator assignments.
|
||||
*
|
||||
* This class is for gyro sensors that connect to an analog input.
|
||||
*/
|
||||
class AnalogGyro : public GyroBase {
|
||||
public:
|
||||
static const uint32_t kOversampleBits = 10;
|
||||
static const uint32_t kAverageBits = 0;
|
||||
static constexpr float kSamplesPerSecond = 50.0;
|
||||
static constexpr float kCalibrationSampleTime = 5.0;
|
||||
static constexpr float kDefaultVoltsPerDegreePerSecond = 0.007;
|
||||
|
||||
explicit AnalogGyro(int32_t channel);
|
||||
explicit AnalogGyro(AnalogInput *channel);
|
||||
explicit AnalogGyro(std::shared_ptr<AnalogInput> channel);
|
||||
AnalogGyro(int32_t channel, uint32_t center, float offset);
|
||||
AnalogGyro(std::shared_ptr<AnalogInput> channel, uint32_t center, float offset);
|
||||
virtual ~AnalogGyro() = default;
|
||||
|
||||
float GetAngle() const override;
|
||||
double GetRate() const override;
|
||||
virtual uint32_t GetCenter() const;
|
||||
virtual float GetOffset() const;
|
||||
void SetSensitivity(float voltsPerDegreePerSecond);
|
||||
void SetDeadband(float volts);
|
||||
void Reset() override;
|
||||
virtual void InitGyro();
|
||||
void Calibrate() override;
|
||||
|
||||
protected:
|
||||
std::shared_ptr<AnalogInput> m_analog;
|
||||
|
||||
private:
|
||||
float m_voltsPerDegreePerSecond;
|
||||
float m_offset;
|
||||
uint32_t m_center;
|
||||
};
|
88
Robot2016/wpilib/cpp/current/include/AnalogInput.h
Normal file
88
Robot2016/wpilib/cpp/current/include/AnalogInput.h
Normal file
@ -0,0 +1,88 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) FIRST 2008-2016. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
/*----------------------------------------------------------------------------*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "HAL/HAL.hpp"
|
||||
#include "SensorBase.h"
|
||||
#include "PIDSource.h"
|
||||
#include "LiveWindow/LiveWindowSendable.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
/**
|
||||
* Analog input class.
|
||||
*
|
||||
* Connected to each analog channel is an averaging and oversampling engine.
|
||||
* This engine accumulates
|
||||
* the specified ( by SetAverageBits() and SetOversampleBits() ) number of
|
||||
* samples before returning a new
|
||||
* value. This is not a sliding window average. The only difference between
|
||||
* the oversampled samples and
|
||||
* the averaged samples is that the oversampled samples are simply accumulated
|
||||
* effectively increasing the
|
||||
* resolution, while the averaged samples are divided by the number of samples
|
||||
* to retain the resolution,
|
||||
* but get more stable values.
|
||||
*/
|
||||
class AnalogInput : public SensorBase,
|
||||
public PIDSource,
|
||||
public LiveWindowSendable {
|
||||
public:
|
||||
static const uint8_t kAccumulatorModuleNumber = 1;
|
||||
static const uint32_t kAccumulatorNumChannels = 2;
|
||||
static const uint32_t kAccumulatorChannels[kAccumulatorNumChannels];
|
||||
|
||||
explicit AnalogInput(uint32_t channel);
|
||||
virtual ~AnalogInput();
|
||||
|
||||
int16_t GetValue() const;
|
||||
int32_t GetAverageValue() const;
|
||||
|
||||
float GetVoltage() const;
|
||||