<?xml version="1.0" encoding="UTF-8"?>
<examples>
  <!-- TODO add back in when there are enough samples to justify tags
  <tagDescription>
    <name>Simple Robot</name>
    <description>Examples for simple robot programs.</description>
  </tagDescription>
  <tagDescription>
    <name>Network Tables</name>
    <description>Examples of how to use Network Tables to accomplish a
    variety of tasks such as sending and receiving values to both
    dashboards and co-processors.</description>
  </tagDescription>
  <tagDescription>
    <name>Simulation</name>
    <description>Examples that can be run in simulation.</description>
  </tagDescription>-->

  <tagDescription>
	<name>Getting Started with C++</name>
	<description>Examples for getting started with FRC C++</description>
  </tagDescription>

  <tagDescription>
    <name>CommandBased Robot</name>
    <description>Examples for CommandBased robot programs.</description>
  </tagDescription>

  <tagDescription>
    <name>Actuators</name>
    <description>Example programs that demonstrate the use of various actuators</description>
  </tagDescription>

  <tagDescription>
    <name>Analog</name>
    <description>Examples programs that show different uses of analog inputs, 
      outputs and various analog sensors</description>
  </tagDescription>

  <tagDescription>
    <name>CAN</name>
    <description>Example programs that demonstrate the use of the CAN components in the control system</description>
  </tagDescription>

  <tagDescription>
    <name>Complete List</name>
    <description>Complete list of all sample programs across all categories</description>
  </tagDescription>

  <tagDescription>
    <name>Digital</name>
    <description>Example programs that demonstrate the sensors that use the digital I/O ports</description>
  </tagDescription>

  <tagDescription>
    <name>I2C</name>
    <description>Example programs that demonstrate the use of I2C and various sensors that use it</description>
  </tagDescription>

  <tagDescription>
    <name>Joystick</name>
    <description>Example programs that demonstate different uses of joysticks for robot driving</description>
  </tagDescription>

  <tagDescription>
    <name>Pneumatics</name>
    <description>Example programs that demonstrate the use of the compressor and solenoids</description>
  </tagDescription>

  <tagDescription>
    <name>Robot and Motor</name>
    <description>Example programs that demonstrate driving a robot and motors including safety, servos, etc.</description>
  </tagDescription>

  <tagDescription>
    <name>SPI</name>
    <description>Example programs that demonstrate the use of the SPI bus and sensors that connect to it</description>
  </tagDescription>

  <tagDescription>
    <name>Safety</name>
    <description>Example programs that demonstate the motor safety classes and how to use them with your programs</description>
  </tagDescription>

  <tagDescription>
    <name>Sensors</name>
    <description>Example programs that demonstrate the use of the various commonly used sensors on FRC robots</description>
  </tagDescription>

    <tagDescription>
        <name>Vision</name>
        <description>Example programs that demonstrate the use of a camera for image acquisition and processing</description>
    </tagDescription>

    <example>
  <name>Motor Controller</name>
  <description>Demonstrate controlling a single motor with a Joystick.</description>
  <tags>
    <tag>Robot and Motor</tag>
    <tag>Actuators</tag>
    <tag>Joystick</tag>
    <tag>Complete List</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/MotorControl/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
</example>

<example>
  <name>Motor Control With Encoder</name>
  <description>Demonstrate controlling a single motor with a Joystick and displaying the net movement of the motor using an encoder.</description>
  <tags>
    <tag>Robot and Motor</tag>
    <tag>Digital</tag>
    <tag>Sensors</tag>
    <tag>Actuators</tag>
    <tag>Joystick</tag>
    <tag>Complete List</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/MotorControl/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
</example>

<example>
  <name>CAN Talon SRX</name>
  <description>Quick demo of running the SRX at a given throttle value.</description>
  <tags>
    <tag>Robot and Motor</tag>
    <tag>Digital</tag>
    <tag>Actuators</tag>
    <tag>Complete List</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/CANTalon/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
</example>

<example>
  <name>Relay</name>
  <description>Demonstrate controlling a Relay from Joystick buttons.</description>
  <tags>
    <tag>Actuators</tag>
    <tag>Joystick</tag>
    <tag>Complete List</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/Relay/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
</example>

<example>
  <name>PDP CAN Monitoring</name>
  <description>Demonstrate using CAN to monitor the voltage, current, and temperature in the Power Distribution Panel.</description>
  <tags>
    <tag>Complete List</tag>
    <tag>CAN</tag>
    <tag>Sensors</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/CANPDP/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
</example>

<example>
  <name>Solenoids</name>
  <description>Demonstrate controlling a single and double solenoid from Joystick buttons.</description>
  <tags>
    <tag>Actuators</tag>
    <tag>Joystick</tag>
    <tag>Pneumatics</tag>
    <tag>Complete List</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/Solenoid/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
</example>

<example>
  <name>Encoder</name>
  <description>Demonstrate displaying the value of a quadrature encoder on the SmartDashboard.</description>
  <tags>
    <tag>Complete List</tag>
    <tag>Digital</tag>
    <tag>Sensors</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/Encoder/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
</example>

<example>
  <name>Arcade Drive</name>
  <description>An example program which the use of Arcade Drive with the RobotDrive class</description>
  <tags>
    <tag>Getting Started with C++</tag>
    <tag>Robot and Motor</tag>
    <tag>Joystick</tag>
    <tag>Complete List</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/ArcadeDrive/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
  </example>


<example>
  <name>Mecanum Drive</name>
  <description>An example program which the use of Mecanum Drive with the RobotDrive class</description>
  <tags>
    <tag>Getting Started with C++</tag>
    <tag>Robot and Motor</tag>
    <tag>Joystick</tag>
    <tag>Complete List</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/MecanumDrive/src/Robot.cpp" destination="src/Robot.cpp"></file>
  </files>
  </example>


  <example>
  <name>Getting Started</name>
  <description>An example program which demonstrates the simplest autonomous and
  teleoperated routines.</description>
  <tags>
    <tag>Getting Started with C++</tag>
    <tag>Complete List</tag>
  </tags>
  <packages>
    <package>src</package>
  </packages>
  <files>
    <file source="examples/GettingStarted/src/Robot.cpp"
      destination="src/Robot.cpp"></file>
  </files>
  </example>

    <example>
        <name>Simple vision program</name>
        <description>The minimal program to acquire images from an attached USB camera on the robot
        and send them to the dashboard.</description>
        <tags>
            <tag>Vision</tag>
            <tag>Complete List</tag>
        </tags>
        <packages>
            <package>src</package>
        </packages>
        <files>
            <file source="examples/QuickVision/src/Robot.cpp"
                  destination="src/Robot.cpp"></file>
        </files>
    </example>

    <example>
        <name>Getting Started</name>
        <description>An example program that acquires images from an attached USB camera and adds some
            annotation to the image as you might do for showing operators the result of some image
            recognition, and sends it to the dashboard for display.
        </description>
        <tags>
            <tag>Vision</tag>
            <tag>Complete List</tag>
        </tags>
        <packages>
            <package>src</package>
        </packages>
        <files>
            <file source="examples/IntermediateVision/src/Robot.cpp"
                  destination="src/Robot.cpp"></file>
        </files>
    </example>


    <example>
    <name>GearsBot</name>
    <description>A fully functional example CommandBased program for
    WPIs GearsBot robot. This code can run on your computer if it
    supports simulation.</description>
    <tags>
      <tag>CommandBased Robot</tag>
      <tag>Complete List</tag>
    </tags>
    <world>/usr/share/frcsim/worlds/GearsBotDemo.world</world>
    <packages>
      <package>src</package>
      <package>src/Commands</package>
      <package>src/Subsystems</package>
    </packages>
    <files>
      <file source="examples/GearsBot/src/Commands/Autonomous.cpp"
            destination="src/Commands/Autonomous.cpp"></file>
      <file source="examples/GearsBot/src/Commands/Autonomous.h"
            destination="src/Commands/Autonomous.h"></file>
      <file source="examples/GearsBot/src/Commands/CloseClaw.cpp"
            destination="src/Commands/CloseClaw.cpp"></file>
      <file source="examples/GearsBot/src/Commands/CloseClaw.h"
            destination="src/Commands/CloseClaw.h"></file>
      <file source="examples/GearsBot/src/Commands/DriveStraight.cpp"
            destination="src/Commands/DriveStraight.cpp"></file>
      <file source="examples/GearsBot/src/Commands/DriveStraight.h"
            destination="src/Commands/DriveStraight.h"></file>
      <file source="examples/GearsBot/src/Commands/OpenClaw.cpp"
            destination="src/Commands/OpenClaw.cpp"></file>
      <file source="examples/GearsBot/src/Commands/OpenClaw.h"
            destination="src/Commands/OpenClaw.h"></file>
      <file source="examples/GearsBot/src/Commands/Pickup.cpp"
            destination="src/Commands/Pickup.cpp"></file>
      <file source="examples/GearsBot/src/Commands/Pickup.h"
            destination="src/Commands/Pickup.h"></file>
      <file source="examples/GearsBot/src/Commands/Place.cpp"
            destination="src/Commands/Place.cpp"></file>
      <file source="examples/GearsBot/src/Commands/Place.h"
            destination="src/Commands/Place.h"></file>
      <file source="examples/GearsBot/src/Commands/PrepareToPickup.cpp"
            destination="src/Commands/PrepareToPickup.cpp"></file>
      <file source="examples/GearsBot/src/Commands/PrepareToPickup.h"
            destination="src/Commands/PrepareToPickup.h"></file>
      <file source="examples/GearsBot/src/Commands/SetDistanceToBox.cpp"
            destination="src/Commands/SetDistanceToBox.cpp"></file>
      <file source="examples/GearsBot/src/Commands/SetDistanceToBox.h"
            destination="src/Commands/SetDistanceToBox.h"></file>
      <file source="examples/GearsBot/src/Commands/SetElevatorSetpoint.cpp"
            destination="src/Commands/SetElevatorSetpoint.cpp"></file>
      <file source="examples/GearsBot/src/Commands/SetElevatorSetpoint.h"
            destination="src/Commands/SetElevatorSetpoint.h"></file>
      <file source="examples/GearsBot/src/Commands/SetWristSetpoint.cpp"
            destination="src/Commands/SetWristSetpoint.cpp"></file>
      <file source="examples/GearsBot/src/Commands/SetWristSetpoint.h"
            destination="src/Commands/SetWristSetpoint.h"></file>
      <file source="examples/GearsBot/src/Commands/TankDriveWithJoystick.cpp"
            destination="src/Commands/TankDriveWithJoystick.cpp"></file>
      <file source="examples/GearsBot/src/Commands/TankDriveWithJoystick.h"
            destination="src/Commands/TankDriveWithJoystick.h"></file>
      <file source="examples/GearsBot/src/OI.cpp"
            destination="src/OI.cpp"></file>
      <file source="examples/GearsBot/src/OI.h"
            destination="src/OI.h"></file>
      <file source="examples/GearsBot/src/Robot.cpp"
            destination="src/Robot.cpp"></file>
      <file source="examples/GearsBot/src/Robot.h"
            destination="src/Robot.h"></file>
      <file source="examples/GearsBot/src/Subsystems/Claw.cpp"
            destination="src/Subsystems/Claw.cpp"></file>
      <file source="examples/GearsBot/src/Subsystems/Claw.h"
            destination="src/Subsystems/Claw.h"></file>
      <file source="examples/GearsBot/src/Subsystems/DriveTrain.cpp"
            destination="src/Subsystems/DriveTrain.cpp"></file>
      <file source="examples/GearsBot/src/Subsystems/DriveTrain.h"
            destination="src/Subsystems/DriveTrain.h"></file>
      <file source="examples/GearsBot/src/Subsystems/Elevator.cpp"
            destination="src/Subsystems/Elevator.cpp"></file>
      <file source="examples/GearsBot/src/Subsystems/Elevator.h"
            destination="src/Subsystems/Elevator.h"></file>
      <file source="examples/GearsBot/src/Subsystems/Wrist.cpp"
            destination="src/Subsystems/Wrist.cpp"></file>
      <file source="examples/GearsBot/src/Subsystems/Wrist.h"
            destination="src/Subsystems/Wrist.h"></file>
    </files>
  </example>

  <example>
    <name>PacGoat</name>
    <description>A fully functional example CommandBased program for FRC Team 190&#39;s 2014 robot. This code can run on your computer if it supports simulation.</description>
    <tags>
      <tag>CommandBased Robot</tag>
      <tag>Complete List</tag>
    </tags>
    <world>/usr/share/frcsim/worlds/PacGoat2014.world</world>
    <packages>
      <package>src</package>
      <package>src/Commands</package>
      <package>src/Subsystems</package>
      <package>src/Triggers</package>
    </packages>
    <files>
      <file source="examples/PacGoat/src/Commands/CheckForHotGoal.cpp"
            destination="src/Commands/CheckForHotGoal.cpp"></file>
      <file source="examples/PacGoat/src/Commands/CheckForHotGoal.h"
            destination="src/Commands/CheckForHotGoal.h"></file>
      <file source="examples/PacGoat/src/Commands/CloseClaw.cpp"
           destination="src/Commands/CloseClaw.cpp"></file>
      <file source="examples/PacGoat/src/Commands/CloseClaw.h"
            destination="src/Commands/CloseClaw.h"></file>
      <file source="examples/PacGoat/src/Commands/Collect.cpp"
            destination="src/Commands/Collect.cpp"></file>
      <file source="examples/PacGoat/src/Commands/Collect.h"
            destination="src/Commands/Collect.h"></file>
      <file source="examples/PacGoat/src/Commands/DriveAndShootAutonomous.cpp"
            destination="src/Commands/DriveAndShootAutonomous.cpp"></file>
      <file source="examples/PacGoat/src/Commands/DriveAndShootAutonomous.h"
            destination="src/Commands/DriveAndShootAutonomous.h"></file>
      <file source="examples/PacGoat/src/Commands/DriveForward.cpp"
            destination="src/Commands/DriveForward.cpp"></file>
      <file source="examples/PacGoat/src/Commands/DriveForward.h"
            destination="src/Commands/DriveForward.h"></file>
      <file source="examples/PacGoat/src/Commands/DriveWithJoystick.cpp"
            destination="src/Commands/DriveWithJoystick.cpp"></file>
      <file source="examples/PacGoat/src/Commands/DriveWithJoystick.h"
            destination="src/Commands/DriveWithJoystick.h"></file>
      <file source="examples/PacGoat/src/Commands/ExtendShooter.cpp"
            destination="src/Commands/ExtendShooter.cpp"></file>
      <file source="examples/PacGoat/src/Commands/ExtendShooter.h"
            destination="src/Commands/ExtendShooter.h"></file>
      <file source="examples/PacGoat/src/Commands/LowGoal.cpp"
            destination="src/Commands/LowGoal.cpp"></file>
      <file source="examples/PacGoat/src/Commands/LowGoal.h"
            destination="src/Commands/LowGoal.h"></file>
      <file source="examples/PacGoat/src/Commands/OpenClaw.cpp"
            destination="src/Commands/OpenClaw.cpp"></file>
      <file source="examples/PacGoat/src/Commands/OpenClaw.h"
            destination="src/Commands/OpenClaw.h"></file>
      <file source="examples/PacGoat/src/Commands/SetCollectionSpeed.cpp"
            destination="src/Commands/SetCollectionSpeed.cpp"></file>
      <file source="examples/PacGoat/src/Commands/SetCollectionSpeed.h"
            destination="src/Commands/SetCollectionSpeed.h"></file>
      <file source="examples/PacGoat/src/Commands/SetPivotSetpoint.cpp"
            destination="src/Commands/SetPivotSetpoint.cpp"></file>
      <file source="examples/PacGoat/src/Commands/SetPivotSetpoint.h"
            destination="src/Commands/SetPivotSetpoint.h"></file>
      <file source="examples/PacGoat/src/Commands/Shoot.cpp"
            destination="src/Commands/Shoot.cpp"></file>
      <file source="examples/PacGoat/src/Commands/Shoot.h"
            destination="src/Commands/Shoot.h"></file>
      <file source="examples/PacGoat/src/Commands/WaitForBall.cpp"
            destination="src/Commands/WaitForBall.cpp"></file>
      <file source="examples/PacGoat/src/Commands/WaitForBall.h"
            destination="src/Commands/WaitForBall.h"></file>
      <file source="examples/PacGoat/src/Commands/WaitForPressure.cpp"
            destination="src/Commands/WaitForPressure.cpp"></file>
      <file source="examples/PacGoat/src/Commands/WaitForPressure.h"
            destination="src/Commands/WaitForPressure.h"></file>
      <file source="examples/PacGoat/src/OI.cpp"
            destination="src/OI.cpp"></file>
      <file source="examples/PacGoat/src/OI.h"
            destination="src/OI.h"></file>
      <file source="examples/PacGoat/src/Robot.cpp"
            destination="src/Robot.cpp"></file>
      <file source="examples/PacGoat/src/Robot.h"
            destination="src/Robot.h"></file>
      <file source="examples/PacGoat/src/Subsystems/Collector.cpp"
            destination="src/Subsystems/Collector.cpp"></file>
      <file source="examples/PacGoat/src/Subsystems/Collector.h"
            destination="src/Subsystems/Collector.h"></file>
      <file source="examples/PacGoat/src/Subsystems/DriveTrain.cpp"
            destination="src/Subsystems/DriveTrain.cpp"></file>
      <file source="examples/PacGoat/src/Subsystems/DriveTrain.h"
            destination="src/Subsystems/DriveTrain.h"></file>
      <file source="examples/PacGoat/src/Subsystems/Pivot.cpp"
            destination="src/Subsystems/Pivot.cpp"></file>
      <file source="examples/PacGoat/src/Subsystems/Pivot.h"
            destination="src/Subsystems/Pivot.h"></file>
      <file source="examples/PacGoat/src/Subsystems/Pneumatics.cpp"
            destination="src/Subsystems/Pneumatics.cpp"></file>
      <file source="examples/PacGoat/src/Subsystems/Pneumatics.h"
            destination="src/Subsystems/Pneumatics.h"></file>
      <file source="examples/PacGoat/src/Subsystems/Shooter.cpp"
            destination="src/Subsystems/Shooter.cpp"></file>
      <file source="examples/PacGoat/src/Subsystems/Shooter.h"
            destination="src/Subsystems/Shooter.h"></file>
      <file source="examples/PacGoat/src/Triggers/DoubleButton.cpp"
            destination="src/Triggers/DoubleButton.cpp"></file>
      <file source="examples/PacGoat/src/Triggers/DoubleButton.h"
            destination="src/Triggers/DoubleButton.h"></file>
    </files>
  </example>
</examples>
