Try the RobotBuilder tool, defining the subsystems, sensors, and actuators of this year's robot. This is not to distract anyone from aos, just to try it out and see what other teams are using. Also it looks very handy for robot hardware checkout and PID tuning.

Cf docs http://wpilib.screenstepslive.com/s/3120/m/7882/l/88538-overview-of-robotbuilder
Cf video demo http://www.youtube.com/user/bradamiller

git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4101 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/robot_builder/Robot2013.yml b/robot_builder/Robot2013.yml
new file mode 100644
index 0000000..f8aa4e9
--- /dev/null
+++ b/robot_builder/Robot2013.yml
@@ -0,0 +1,870 @@
+Version 0.0.2
+
+---
+Name: Robot2013
+Base: Robot
+Children:
+- Name: Subsystems
+  Base: Subsystems
+  Children:
+  - Name: Air Compressor
+    Base: Subsystem
+    Children:
+    - Name: Air Compressor
+      Base: Compressor
+      Children: []
+      Properties:
+        Spike Channel (Relay): !!robotbuilder.data.properties.ChoicesProperty
+          choices: ['1', '2', '3', '4', '5', '6', '7', '8']
+          default: '1'
+          name: Spike Channel (Relay)
+          validators: [RelayOutput]
+          value: '1'
+        Spike Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: ['1', '2']
+          default: '1'
+          name: Spike Module (Digital)
+          validators: [RelayOutput]
+          value: '1'
+        Pressure Switch Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: ['1', '2']
+          default: '1'
+          name: Pressure Switch Module (Digital)
+          validators: [DigitalChannel]
+          value: '1'
+        Pressure Switch Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12',
+            '13', '14']
+          default: '1'
+          name: Pressure Switch Channel (Digital)
+          validators: [DigitalChannel]
+          value: '5'
+    Properties:
+      Default Command: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+        name: Default Command, type: Command, validators: null, value: None}
+  - Name: Drive Train
+    Base: Subsystem
+    Children:
+    - Name: Left Shifter
+      Base: Solenoid
+      Children: []
+      Properties:
+        Output Module (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id001 ['1', '2']
+          default: '1'
+          name: Output Module (Solenoid)
+          validators: &id002 [Solenoid]
+          value: '1'
+        Output Channel (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id003 ['1', '2', '3', '4', '5', '6', '7', '8']
+          default: '1'
+          name: Output Channel (Solenoid)
+          validators: &id004 [Solenoid]
+          value: '1'
+    - Name: Right Shifter
+      Base: Solenoid
+      Children: []
+      Properties:
+        Output Module (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id001
+          default: '1'
+          name: Output Module (Solenoid)
+          validators: *id002
+          value: '1'
+        Output Channel (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id003
+          default: '1'
+          name: Output Channel (Solenoid)
+          validators: *id004
+          value: '2'
+    - Name: Robot Drive
+      Base: Robot Drive 4
+      Children:
+      - Name: Left Motors 1 and 2
+        Base: Speed Controller
+        Children: []
+        Properties:
+          Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: &id005 ['1', '2']
+            default: '1'
+            name: Output Module (Digital)
+            validators: &id006 [PWMOutput]
+            value: '1'
+          Type: !!robotbuilder.data.properties.ChoicesProperty
+            choices: &id007 [Victor, Jaguar, Talon]
+            default: Victor
+            name: Type
+            validators: null
+            value: Talon
+          Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+            choices: &id008 ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
+            default: '1'
+            name: Output Channel (PWM)
+            validators: &id009 [PWMOutput]
+            value: '5'
+      - Name: Left Motor 3
+        Base: Speed Controller
+        Children: []
+        Properties:
+          Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id005
+            default: '1'
+            name: Output Module (Digital)
+            validators: *id006
+            value: '1'
+          Type: !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id007
+            default: Victor
+            name: Type
+            validators: null
+            value: Talon
+          Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id008
+            default: '1'
+            name: Output Channel (PWM)
+            validators: *id009
+            value: '6'
+      - Name: Right Motors 1 and 2
+        Base: Speed Controller
+        Children: []
+        Properties:
+          Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id005
+            default: '1'
+            name: Output Module (Digital)
+            validators: *id006
+            value: '1'
+          Type: !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id007
+            default: Victor
+            name: Type
+            validators: null
+            value: Talon
+          Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id008
+            default: '1'
+            name: Output Channel (PWM)
+            validators: *id009
+            value: '2'
+      - Name: Right Motor 3
+        Base: Speed Controller
+        Children: []
+        Properties:
+          Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id005
+            default: '1'
+            name: Output Module (Digital)
+            validators: *id006
+            value: '1'
+          Type: !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id007
+            default: Victor
+            name: Type
+            validators: null
+            value: Talon
+          Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id008
+            default: '1'
+            name: Output Channel (PWM)
+            validators: *id009
+            value: '3'
+      Properties:
+        Sensitivity: !!robotbuilder.data.properties.DoubleProperty {default: 0.5,
+          name: Sensitivity, validators: null, value: 0.5}
+        Right Front Motor Inverted: !!robotbuilder.data.properties.BooleanProperty {
+          default: false, name: Right Front Motor Inverted, validators: null, value: false}
+        Safety Enabled: !!robotbuilder.data.properties.BooleanProperty {default: true,
+          name: Safety Enabled, validators: null, value: true}
+        Left Front Motor Inverted: !!robotbuilder.data.properties.BooleanProperty {
+          default: false, name: Left Front Motor Inverted, validators: null, value: true}
+        Right Front Motor: !!robotbuilder.data.properties.ChildSelectionProperty
+          default: 2
+          name: Right Front Motor
+          type: PIDOutput
+          validators: [RobotDrive4, ChildDropdownSelected]
+          value: Drive Train Right Motors 1 and 2
+        Maximum Output: !!robotbuilder.data.properties.DoubleProperty {default: 1,
+          name: Maximum Output, validators: null, value: 1.0}
+        Right Rear Motor Inverted: !!robotbuilder.data.properties.BooleanProperty {
+          default: false, name: Right Rear Motor Inverted, validators: null, value: false}
+        Left Rear Motor Inverted: !!robotbuilder.data.properties.BooleanProperty {
+          default: false, name: Left Rear Motor Inverted, validators: null, value: true}
+        Right Rear Motor: !!robotbuilder.data.properties.ChildSelectionProperty
+          default: 3
+          name: Right Rear Motor
+          type: PIDOutput
+          validators: [RobotDrive4, ChildDropdownSelected]
+          value: Drive Train Right Motor 3
+        Left Rear Motor: !!robotbuilder.data.properties.ChildSelectionProperty
+          default: 1
+          name: Left Rear Motor
+          type: PIDOutput
+          validators: [RobotDrive4, ChildDropdownSelected]
+          value: Drive Train Left Motor 3
+        Left Front Motor: !!robotbuilder.data.properties.ChildSelectionProperty
+          default: 0
+          name: Left Front Motor
+          type: PIDOutput
+          validators: [RobotDrive4, ChildDropdownSelected]
+          value: Drive Train Left Motors 1 and 2
+        Safety Expiration Time: !!robotbuilder.data.properties.DoubleProperty {default: 0.1,
+          name: Safety Expiration Time, validators: null, value: 0.1}
+    - Name: Quadrature Encoder Left
+      Base: Quadrature Encoder
+      Children: []
+      Properties:
+        Channel B Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id010 ['1', '2']
+          default: '1'
+          name: Channel B Module (Digital)
+          validators: &id011 [DigitalChannel]
+          value: '1'
+        Channel A Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id012 ['1', '2']
+          default: '1'
+          name: Channel A Module (Digital)
+          validators: &id013 [DigitalChannel]
+          value: '1'
+        PID Source: !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id014 [kDistance, kRate]
+          default: kRate
+          name: PID Source
+          validators: null
+          value: kRate
+        Distance Per Pulse: !!robotbuilder.data.properties.DoubleProperty {default: 1,
+          name: Distance Per Pulse, validators: null, value: 1.0}
+        Encoding Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id015 [k4X, k2X, k1X]
+          default: k4X
+          name: Encoding Type
+          validators: null
+          value: k4X
+        Channel B Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id016 ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11',
+            '12', '13', '14']
+          default: '1'
+          name: Channel B Channel (Digital)
+          validators: &id017 [DigitalChannel]
+          value: '2'
+        Channel A Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id018 ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11',
+            '12', '13', '14']
+          default: '1'
+          name: Channel A Channel (Digital)
+          validators: &id019 [DigitalChannel]
+          value: '1'
+        Reverse Direction: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Reverse Direction, validators: null, value: false}
+    - Name: Quadrature Encoder Right
+      Base: Quadrature Encoder
+      Children: []
+      Properties:
+        Channel B Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id010
+          default: '1'
+          name: Channel B Module (Digital)
+          validators: *id011
+          value: '1'
+        Channel A Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id012
+          default: '1'
+          name: Channel A Module (Digital)
+          validators: *id013
+          value: '1'
+        PID Source: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id014
+          default: kRate
+          name: PID Source
+          validators: null
+          value: kRate
+        Distance Per Pulse: !!robotbuilder.data.properties.DoubleProperty {default: 1,
+          name: Distance Per Pulse, validators: null, value: 1.0}
+        Encoding Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id015
+          default: k4X
+          name: Encoding Type
+          validators: null
+          value: k4X
+        Channel B Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id016
+          default: '1'
+          name: Channel B Channel (Digital)
+          validators: *id017
+          value: '4'
+        Channel A Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id018
+          default: '1'
+          name: Channel A Channel (Digital)
+          validators: *id019
+          value: '3'
+        Reverse Direction: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Reverse Direction, validators: null, value: false}
+    Properties:
+      Default Command: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+        name: Default Command, type: Command, validators: null, value: None}
+  - Name: Shooter Wheel PID Controller
+    Base: PID Subsystem
+    Children:
+    - Name: Shooter Motor
+      Base: Speed Controller
+      Children: []
+      Properties:
+        Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id005
+          default: '1'
+          name: Output Module (Digital)
+          validators: *id006
+          value: '1'
+        Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id007
+          default: Victor
+          name: Type
+          validators: null
+          value: Talon
+        Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id008
+          default: '1'
+          name: Output Channel (PWM)
+          validators: *id009
+          value: '1'
+    - Name: Shooter Speed Encoder
+      Base: Quadrature Encoder
+      Children: []
+      Properties:
+        Channel B Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id010
+          default: '1'
+          name: Channel B Module (Digital)
+          validators: *id011
+          value: '2'
+        Channel A Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id012
+          default: '1'
+          name: Channel A Module (Digital)
+          validators: *id013
+          value: '1'
+        PID Source: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id014
+          default: kRate
+          name: PID Source
+          validators: null
+          value: kRate
+        Distance Per Pulse: !!robotbuilder.data.properties.DoubleProperty {default: 1,
+          name: Distance Per Pulse, validators: null, value: 1.0}
+        Encoding Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id015
+          default: k4X
+          name: Encoding Type
+          validators: null
+          value: k4X
+        Channel B Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id016
+          default: '1'
+          name: Channel B Channel (Digital)
+          validators: *id017
+          value: '1'
+        Channel A Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id018
+          default: '1'
+          name: Channel A Channel (Digital)
+          validators: *id019
+          value: '6'
+        Reverse Direction: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Reverse Direction, validators: null, value: false}
+    Properties:
+      D: !!robotbuilder.data.properties.DoubleProperty {default: 0, name: D, validators: null,
+        value: 0.0}
+      Input: !!robotbuilder.data.properties.ChildSelectionProperty
+        default: 0
+        name: Input
+        type: PIDSource
+        validators: [ChildDropdownSelected]
+        value: Shooter Wheel PID Controller Shooter Speed Encoder
+      F: !!robotbuilder.data.properties.DoubleProperty {default: 0, name: F, validators: null,
+        value: 0.0}
+      Tolerance: !!robotbuilder.data.properties.DoubleProperty {default: 0.2, name: Tolerance,
+        validators: null, value: 0.2}
+      Limit Output: !!robotbuilder.data.properties.BooleanProperty {default: false,
+        name: Limit Output, validators: null, value: false}
+      Continuous: !!robotbuilder.data.properties.BooleanProperty {default: false,
+        name: Continuous, validators: null, value: false}
+      Default Command: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+        name: Default Command, type: Command, validators: null, value: None}
+      Maximum Output: !!robotbuilder.data.properties.DoubleProperty {default: 1, name: Maximum Output,
+        validators: null, value: 1.0}
+      Limit Input: !!robotbuilder.data.properties.BooleanProperty {default: false,
+        name: Limit Input, validators: null, value: false}
+      Output: !!robotbuilder.data.properties.ChildSelectionProperty
+        default: 0
+        name: Output
+        type: PIDOutput
+        validators: [ChildDropdownSelected]
+        value: Shooter Wheel PID Controller Shooter Motor
+      Minimum Input: !!robotbuilder.data.properties.DoubleProperty {default: 0, name: Minimum Input,
+        validators: null, value: 0.0}
+      Minimum Output: !!robotbuilder.data.properties.DoubleProperty {default: -1,
+        name: Minimum Output, validators: null, value: -1.0}
+      I: !!robotbuilder.data.properties.DoubleProperty {default: 0, name: I, validators: null,
+        value: 0.0}
+      P: !!robotbuilder.data.properties.DoubleProperty {default: 1, name: P, validators: null,
+        value: 1.0}
+      Maximum Input: !!robotbuilder.data.properties.DoubleProperty {default: 5, name: Maximum Input,
+        validators: null, value: 5.0}
+  - Name: Shooter
+    Base: Subsystem
+    Children:
+    - Name: Shooter Tilt Motor
+      Base: Speed Controller
+      Children: []
+      Properties:
+        Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id005
+          default: '1'
+          name: Output Module (Digital)
+          validators: *id006
+          value: '1'
+        Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id007
+          default: Victor
+          name: Type
+          validators: null
+          value: Talon
+        Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id008
+          default: '1'
+          name: Output Channel (PWM)
+          validators: *id009
+          value: '4'
+    - Name: Shooter Tilt Encoder
+      Base: Quadrature Encoder
+      Children: []
+      Properties:
+        Channel B Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id010
+          default: '1'
+          name: Channel B Module (Digital)
+          validators: *id011
+          value: '1'
+        Channel A Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id012
+          default: '1'
+          name: Channel A Module (Digital)
+          validators: *id013
+          value: '1'
+        PID Source: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id014
+          default: kRate
+          name: PID Source
+          validators: null
+          value: kRate
+        Distance Per Pulse: !!robotbuilder.data.properties.DoubleProperty {default: 1,
+          name: Distance Per Pulse, validators: null, value: 1.0}
+        Encoding Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id015
+          default: k4X
+          name: Encoding Type
+          validators: null
+          value: k4X
+        Channel B Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id016
+          default: '1'
+          name: Channel B Channel (Digital)
+          validators: *id017
+          value: '8'
+        Channel A Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id018
+          default: '1'
+          name: Channel A Channel (Digital)
+          validators: *id019
+          value: '7'
+        Reverse Direction: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Reverse Direction, validators: null, value: false}
+    - Name: Shooter Tilt Home Sensor
+      Base: Gear Tooth Sensor
+      Children: []
+      Properties:
+        Input Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id024 ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11',
+            '12', '13', '14']
+          default: '1'
+          name: Input Channel (Digital)
+          validators: &id025 [DigitalChannel]
+          value: '9'
+        Direction Sensitive: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Direction Sensitive, validators: null, value: false}
+        Input Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id026 ['1', '2']
+          default: '1'
+          name: Input Module (Digital)
+          validators: &id027 [DigitalChannel]
+          value: '1'
+    - Name: Latch Frisbee Solenoid
+      Base: Solenoid
+      Children: []
+      Properties:
+        Output Module (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id001
+          default: '1'
+          name: Output Module (Solenoid)
+          validators: *id002
+          value: '1'
+        Output Channel (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id003
+          default: '1'
+          name: Output Channel (Solenoid)
+          validators: *id004
+          value: '5'
+    - Name: Load Frisbee Solenoid
+      Base: Solenoid
+      Children: []
+      Properties:
+        Output Module (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id001
+          default: '1'
+          name: Output Module (Solenoid)
+          validators: *id002
+          value: '1'
+        Output Channel (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id003
+          default: '1'
+          name: Output Channel (Solenoid)
+          validators: *id004
+          value: '3'
+    - Name: Shoot Solenoid
+      Base: Solenoid
+      Children: []
+      Properties:
+        Output Module (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id001
+          default: '1'
+          name: Output Module (Solenoid)
+          validators: *id002
+          value: '1'
+        Output Channel (Solenoid): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id003
+          default: '1'
+          name: Output Channel (Solenoid)
+          validators: *id004
+          value: '4'
+    Properties:
+      Default Command: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+        name: Default Command, type: Command, validators: null, value: None}
+  - Name: Frisbee Storage
+    Base: Subsystem
+    Children:
+    - Name: Frisbee Indexer Motor
+      Base: Speed Controller
+      Children: []
+      Properties:
+        Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id005
+          default: '1'
+          name: Output Module (Digital)
+          validators: *id006
+          value: '1'
+        Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id007
+          default: Victor
+          name: Type
+          validators: null
+          value: Talon
+        Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id008
+          default: '1'
+          name: Output Channel (PWM)
+          validators: *id009
+          value: '7'
+    - Name: Frisbee Indexer Speed Encoder
+      Base: Quadrature Encoder
+      Children: []
+      Properties:
+        Channel B Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id010
+          default: '1'
+          name: Channel B Module (Digital)
+          validators: *id011
+          value: '1'
+        Channel A Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id012
+          default: '1'
+          name: Channel A Module (Digital)
+          validators: *id013
+          value: '1'
+        PID Source: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id014
+          default: kRate
+          name: PID Source
+          validators: null
+          value: kRate
+        Distance Per Pulse: !!robotbuilder.data.properties.DoubleProperty {default: 1,
+          name: Distance Per Pulse, validators: null, value: 1.0}
+        Encoding Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id015
+          default: k4X
+          name: Encoding Type
+          validators: null
+          value: k4X
+        Channel B Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id016
+          default: '1'
+          name: Channel B Channel (Digital)
+          validators: *id017
+          value: '11'
+        Channel A Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id018
+          default: '1'
+          name: Channel A Channel (Digital)
+          validators: *id019
+          value: '10'
+        Reverse Direction: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Reverse Direction, validators: null, value: false}
+    - Name: Frisbee Input Optical Sensor
+      Base: Digital Input
+      Children: []
+      Properties:
+        Input Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id020 ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11',
+            '12', '13', '14']
+          default: '1'
+          name: Input Channel (Digital)
+          validators: &id021 [DigitalChannel]
+          value: '12'
+        Input Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: &id022 ['1', '2']
+          default: '1'
+          name: Input Module (Digital)
+          validators: &id023 [DigitalChannel]
+          value: '1'
+    - Name: Frisbee Index Optical Sensor
+      Base: Digital Input
+      Children: []
+      Properties:
+        Input Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id020
+          default: '1'
+          name: Input Channel (Digital)
+          validators: *id021
+          value: '13'
+        Input Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id022
+          default: '1'
+          name: Input Module (Digital)
+          validators: *id023
+          value: '1'
+    - Name: Frisbee Ready to shoot Optical Sensor
+      Base: Digital Input
+      Children: []
+      Properties:
+        Input Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id020
+          default: '1'
+          name: Input Channel (Digital)
+          validators: *id021
+          value: '14'
+        Input Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id022
+          default: '1'
+          name: Input Module (Digital)
+          validators: *id023
+          value: '1'
+    Properties:
+      Default Command: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+        name: Default Command, type: Command, validators: null, value: None}
+  - Name: Frisbee Pickup
+    Base: Subsystem
+    Children:
+    - Name: Intake and Centering Roller Motors
+      Base: Speed Controller
+      Children: []
+      Properties:
+        Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id005
+          default: '1'
+          name: Output Module (Digital)
+          validators: *id006
+          value: '1'
+        Type: !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id007
+          default: Victor
+          name: Type
+          validators: null
+          value: Talon
+        Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id008
+          default: '1'
+          name: Output Channel (PWM)
+          validators: *id009
+          value: '8'
+    Properties:
+      Default Command: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+        name: Default Command, type: Command, validators: null, value: None}
+  - Name: Pickup Arm
+    Base: Subsystem
+    Children:
+    - Name: Pickup Arm PID Controller
+      Base: PID Controller
+      Children:
+      - Name: Pickup Arm Motor
+        Base: Speed Controller
+        Children: []
+        Properties:
+          Output Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id005
+            default: '1'
+            name: Output Module (Digital)
+            validators: *id006
+            value: '1'
+          Type: !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id007
+            default: Victor
+            name: Type
+            validators: null
+            value: Talon
+          Output Channel (PWM): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id008
+            default: '1'
+            name: Output Channel (PWM)
+            validators: *id009
+            value: '9'
+      - Name: Pickup Arm Encoder
+        Base: Quadrature Encoder
+        Children: []
+        Properties:
+          Channel B Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id010
+            default: '1'
+            name: Channel B Module (Digital)
+            validators: *id011
+            value: '2'
+          Channel A Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id012
+            default: '1'
+            name: Channel A Module (Digital)
+            validators: *id013
+            value: '2'
+          PID Source: !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id014
+            default: kRate
+            name: PID Source
+            validators: null
+            value: kRate
+          Distance Per Pulse: !!robotbuilder.data.properties.DoubleProperty {default: 1,
+            name: Distance Per Pulse, validators: null, value: 1.0}
+          Encoding Type: !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id015
+            default: k4X
+            name: Encoding Type
+            validators: null
+            value: k4X
+          Channel B Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id016
+            default: '1'
+            name: Channel B Channel (Digital)
+            validators: *id017
+            value: '3'
+          Channel A Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+            choices: *id018
+            default: '1'
+            name: Channel A Channel (Digital)
+            validators: *id019
+            value: '2'
+          Reverse Direction: !!robotbuilder.data.properties.BooleanProperty {default: false,
+            name: Reverse Direction, validators: null, value: false}
+      Properties:
+        D: !!robotbuilder.data.properties.DoubleProperty {default: 0, name: D, validators: null,
+          value: 0.0}
+        Period: !!robotbuilder.data.properties.DoubleProperty {default: 0.02, name: Period,
+          validators: null, value: 0.02}
+        Input: !!robotbuilder.data.properties.ChildSelectionProperty
+          default: 0
+          name: Input
+          type: PIDSource
+          validators: [ChildDropdownSelected]
+          value: Pickup Arm Pickup Arm Encoder
+        F: !!robotbuilder.data.properties.DoubleProperty {default: 0, name: F, validators: null,
+          value: 0.0}
+        Tolerance: !!robotbuilder.data.properties.DoubleProperty {default: 0.2, name: Tolerance,
+          validators: null, value: 0.2}
+        Limit Output: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Limit Output, validators: null, value: false}
+        Continuous: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Continuous, validators: null, value: false}
+        Maximum Output: !!robotbuilder.data.properties.DoubleProperty {default: 1,
+          name: Maximum Output, validators: null, value: 1.0}
+        Limit Input: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Limit Input, validators: null, value: false}
+        Output: !!robotbuilder.data.properties.ChildSelectionProperty
+          default: 0
+          name: Output
+          type: PIDOutput
+          validators: [ChildDropdownSelected]
+          value: Pickup Arm Pickup Arm Motor
+        Minimum Input: !!robotbuilder.data.properties.DoubleProperty {default: 0,
+          name: Minimum Input, validators: null, value: 0.0}
+        Minimum Output: !!robotbuilder.data.properties.DoubleProperty {default: -1,
+          name: Minimum Output, validators: null, value: -1.0}
+        I: !!robotbuilder.data.properties.DoubleProperty {default: 0, name: I, validators: null,
+          value: 0.0}
+        P: !!robotbuilder.data.properties.DoubleProperty {default: 1, name: P, validators: null,
+          value: 1.0}
+        Maximum Input: !!robotbuilder.data.properties.DoubleProperty {default: 5,
+          name: Maximum Input, validators: null, value: 5.0}
+    - Name: Pickup Arm Home Sensor
+      Base: Gear Tooth Sensor
+      Children: []
+      Properties:
+        Input Channel (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id024
+          default: '1'
+          name: Input Channel (Digital)
+          validators: *id025
+          value: '4'
+        Direction Sensitive: !!robotbuilder.data.properties.BooleanProperty {default: false,
+          name: Direction Sensitive, validators: null, value: false}
+        Input Module (Digital): !!robotbuilder.data.properties.ChoicesProperty
+          choices: *id026
+          default: '1'
+          name: Input Module (Digital)
+          validators: *id027
+          value: '2'
+    Properties:
+      Default Command: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+        name: Default Command, type: Command, validators: null, value: None}
+  Properties: {}
+- Name: Operator Interface
+  Base: OI
+  Children: []
+  Properties: {}
+- Name: Commands
+  Base: Commands
+  Children:
+  - Name: Autonomous Command
+    Base: Command
+    Children: []
+    Properties:
+      Requires: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+        name: Requires, type: Subsystem, validators: null, value: None}
+      Button on SmartDashboard: !!robotbuilder.data.properties.BooleanProperty {default: true,
+        name: Button on SmartDashboard, validators: null, value: true}
+  Properties: {}
+Properties:
+  Autonomous Command: !!robotbuilder.data.properties.TypeSelectionProperty {default: None,
+    name: Autonomous Command, type: Command, validators: null, value: Autonomous Command}
+  Wiring File: !!robotbuilder.data.properties.FileProperty {default: '', extension: html,
+    folder: false, name: Wiring File, validators: null, value: 'C:\Users\jerry\WR_Workspace\RobotBuilder\wiring.html'}
+  C++ Windriver Workspace: !!robotbuilder.data.properties.FileProperty {default: 'C:\Windriver\workspace',
+    extension: null, folder: true, name: C++ Windriver Workspace, validators: null,
+    value: 'C:\sourcecontrolled\frc971\2013\trunk\src\robot_builder'}
+  Use Default Java Package: !!robotbuilder.data.properties.BooleanProperty {default: true,
+    name: Use Default Java Package, validators: null, value: false}
+  Java Package: !!robotbuilder.data.properties.StringProperty {default: org.usfirst.frc0000,
+    name: Java Package, validators: null, value: org.usfirst.frc971}
+  Export Subsystems: !!robotbuilder.data.properties.BooleanProperty {default: true,
+    name: Export Subsystems, validators: null, value: true}
+  Team Number: !!robotbuilder.data.properties.IntegerProperty {default: 0, name: Team Number,
+    validators: null, value: 971}
+  Export Commands: !!robotbuilder.data.properties.BooleanProperty {default: true,
+    name: Export Commands, validators: null, value: true}
+  Java Project Directory: !!robotbuilder.data.properties.FileProperty {default: 'C:\Users\jerry\NetBeansProjects',
+    extension: null, folder: true, name: Java Project Directory, validators: null,
+    value: 'C:\sourcecontrolled\frc971\2013\trunk\src\robot_builder'}
diff --git a/robot_builder/Robot2013/.cproject b/robot_builder/Robot2013/.cproject
new file mode 100644
index 0000000..b427086
--- /dev/null
+++ b/robot_builder/Robot2013/.cproject
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<?fileVersion 4.0.0?>

+

+<cproject>

+	<storageModule moduleId="org.eclipse.cdt.core.settings">

+		<cconfiguration id="org.eclipse.cdt.core.default.config.283967106">

+			<storageModule buildSystemId="org.eclipse.cdt.core.defaultConfigDataProvider" id="org.eclipse.cdt.core.default.config.283967106" moduleId="org.eclipse.cdt.core.settings" name="Configuration">

+				<externalSettings/>

+				<extensions>

+					<extension id="com.windriver.ide.core.WRScannerInfoProvider" point="org.eclipse.cdt.core.ScannerInfoProvider"/>

+					<extension id="com.windriver.ide.core.WRElfParserVxWorks" point="org.eclipse.cdt.core.BinaryParser"/>

+					<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>

+				</extensions>

+			</storageModule>

+			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>

+			<storageModule moduleId="org.eclipse.cdt.core.pathentry">

+				<pathentry kind="src" path=""/>

+				<pathentry kind="out" path=""/>

+				<pathentry kind="con" path="com.windriver.ide.core.WR_CONTAINER"/>

+				<pathentry kind="con" path="com.windriver.ide.core.build.model.WR_USERDEFINED_CONTAINER"/>

+			</storageModule>

+			<storageModule moduleId="scannerConfiguration"/>

+			<storageModule moduleId="userdefinedContainer">

+				<indexAllFiles value="false"/>

+				<initialized value="true"/>

+			</storageModule>

+		</cconfiguration>

+	</storageModule>

+</cproject>

diff --git a/robot_builder/Robot2013/.project b/robot_builder/Robot2013/.project
new file mode 100644
index 0000000..398f6ce
--- /dev/null
+++ b/robot_builder/Robot2013/.project
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<projectDescription>

+	<name>Robot2013</name>

+	<comment></comment>

+	<projects>

+	</projects>

+	<buildSpec>

+		<buildCommand>

+			<name>com.windriver.ide.core.wrbuilder</name>

+			<arguments>

+			</arguments>

+		</buildCommand>

+	</buildSpec>

+	<natures>

+		<nature>com.windriver.ide.core.wrnature</nature>

+		<nature>com.windriver.ide.core.wrcorenature</nature>

+		<nature>org.eclipse.cdt.core.cnature</nature>

+		<nature>org.eclipse.cdt.core.ccnature</nature>

+	</natures>

+</projectDescription>

diff --git a/robot_builder/Robot2013/.wrmakefile b/robot_builder/Robot2013/.wrmakefile
new file mode 100644
index 0000000..a1dd7f8
--- /dev/null
+++ b/robot_builder/Robot2013/.wrmakefile
@@ -0,0 +1,48 @@
+# The file ".wrmakefile" is the template used by the Wind River Workbench to

+# generate the makefiles of this project. Add user-specific build targets and

+# make rules only(!) in this project's ".wrmakefile" file. These will then be

+# automatically dumped into the makefiles.

+

+WIND_HOME := $(subst \,/,$(WIND_HOME))

+WIND_BASE := $(subst \,/,$(WIND_BASE))

+WIND_USR := $(subst \,/,$(WIND_USR))

+

+all : pre_build main_all post_build

+

+_clean ::

+	@echo "make: removing targets and objects of `pwd`"

+

+%IDE_GENERATED%

+

+-include $(PRJ_ROOT_DIR)/*.makefile

+

+-include *.makefile

+

+main_all : external_build $(PROJECT_TARGETS)

+	@echo "make: built targets of `pwd`"

+

+# entry point for extending the build

+external_build ::

+	@echo ""

+

+# main entry point for pre processing prior to the build

+pre_build :: $(PRE_BUILD_STEP) generate_sources

+	@echo ""

+

+# entry point for generating sources prior to the build

+generate_sources ::

+	@echo ""

+

+# main entry point for post processing after the build

+post_build :: $(POST_BUILD_STEP) deploy_output

+	@echo ""

+

+# entry point for deploying output after the build

+deploy_output ::

+	@echo ""

+

+clean :: external_clean $(CLEAN_STEP) _clean

+

+# entry point for extending the build clean

+external_clean ::

+	@echo ""

diff --git a/robot_builder/Robot2013/.wrproject b/robot_builder/Robot2013/.wrproject
new file mode 100644
index 0000000..d0ee352
--- /dev/null
+++ b/robot_builder/Robot2013/.wrproject
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>

+<wrxml>

+    <properties platform="VxWorks" platform_name="vxworks-6.3" root="1" type="DownloadableKernelModuleProject"/>

+    <attributes>

+        <mapAttribute>

+            <listAttribute key="BLD::Info|GlobalMacros">

+                <stringAttribute value="PROJECT_TYPE"/>

+                <stringAttribute value="DEFINES"/>

+                <stringAttribute value="EXPAND_DBG"/>

+            </listAttribute>

+            <stringAttribute key="BLD::Info|GlobalMacro|DEFINES" value=""/>

+            <stringAttribute key="BLD::Info|GlobalMacro|EXPAND_DBG" value="0"/>

+            <stringAttribute key="BLD::Info|GlobalMacro|PROJECT_TYPE" value="DKM"/>

+            <listAttribute key="BLD::Info|Incl|PPC32diab">

+                <stringAttribute value="-I$(WIND_BASE)/target/h/WPILib"/>

+                <stringAttribute value="-I$(WIND_BASE)/target/h"/>

+                <stringAttribute value="-I$(WIND_BASE)/target/h/wrn/coreip"/>

+            </listAttribute>

+            <listAttribute key="BLD::Info|Incl|PPC32gnu">

+                <stringAttribute value="-I$(WIND_BASE)/target/h"/>

+                <stringAttribute value="-I$(WIND_BASE)/target/h/wrn/coreip"/>

+            </listAttribute>

+            <listAttribute key="BLD::Info|Incl|PPC603diab">

+                <stringAttribute value="-I$(WIND_BASE)/target/h"/>

+                <stringAttribute value="-I$(WIND_BASE)/target/h/wrn/coreip"/>

+            </listAttribute>

+            <listAttribute key="BLD::Info|Incl|PPC603gnu">

+                <stringAttribute value="-I$(WIND_BASE)/target/h"/>

+                <stringAttribute value="-I$(WIND_BASE)/target/h/WPILib"/>

+                <stringAttribute value="-I$(WIND_BASE)/target/h/wrn/coreip"/>

+            </listAttribute>

+            <listAttribute key="BLD::Info|Libs|PPC32diab">

+                <stringAttribute value="$(WIND_BASE)/target/lib/WPILib.a"/>

+            </listAttribute>

+            <listAttribute key="BLD::Info|Libs|PPC603gnu">

+                <stringAttribute value="$(WIND_BASE)/target/lib/WPILib.a"/>

+            </listAttribute>

+            <listAttribute key="BLD::Info|Macros">

+                <stringAttribute value="VX_CPU_FAMILY"/>

+                <stringAttribute value="CPU"/>

+                <stringAttribute value="TOOL_FAMILY"/>

+                <stringAttribute value="TOOL"/>

+                <stringAttribute value="TOOL_PATH"/>

+                <stringAttribute value="CC_ARCH_SPEC"/>

+                <stringAttribute value="LIBPATH"/>

+                <stringAttribute value="LIBS"/>

+            </listAttribute>

+            <stringAttribute key="BLD::Info|Macro|CC_ARCH_SPEC|value|PPC32diab" value="-tPPCFH:vxworks63 -Xstmw-slow -DPPC32_fp60x"/>

+            <stringAttribute key="BLD::Info|Macro|CC_ARCH_SPEC|value|PPC32gnu" value="-mhard-float -mstrict-align -mno-implicit-fp -DPPC32_fp60x"/>

+            <stringAttribute key="BLD::Info|Macro|CC_ARCH_SPEC|value|PPC603diab" value="-tPPC603FH:vxworks63"/>

+            <stringAttribute key="BLD::Info|Macro|CC_ARCH_SPEC|value|PPC603gnu" value="-mcpu=603 -mstrict-align -mno-implicit-fp -mlongcall"/>

+            <stringAttribute key="BLD::Info|Macro|CPU|value|PPC32diab" value="PPC32"/>

+            <stringAttribute key="BLD::Info|Macro|CPU|value|PPC32gnu" value="PPC32"/>

+            <stringAttribute key="BLD::Info|Macro|CPU|value|PPC603diab" value="PPC603"/>

+            <stringAttribute key="BLD::Info|Macro|CPU|value|PPC603gnu" value="PPC603"/>

+            <stringAttribute key="BLD::Info|Macro|LIBPATH|value|PPC32diab" value=""/>

+            <stringAttribute key="BLD::Info|Macro|LIBPATH|value|PPC32gnu" value=""/>

+            <stringAttribute key="BLD::Info|Macro|LIBPATH|value|PPC603diab" value=""/>

+            <stringAttribute key="BLD::Info|Macro|LIBPATH|value|PPC603gnu" value=""/>

+            <stringAttribute key="BLD::Info|Macro|LIBS|value|PPC32diab" value=""/>

+            <stringAttribute key="BLD::Info|Macro|LIBS|value|PPC32gnu" value=""/>

+            <stringAttribute key="BLD::Info|Macro|LIBS|value|PPC603diab" value=""/>

+            <stringAttribute key="BLD::Info|Macro|LIBS|value|PPC603gnu" value=""/>

+            <stringAttribute key="BLD::Info|Macro|TOOL_FAMILY|value|PPC32diab" value="diab"/>

+            <stringAttribute key="BLD::Info|Macro|TOOL_FAMILY|value|PPC32gnu" value="gnu"/>

+            <stringAttribute key="BLD::Info|Macro|TOOL_FAMILY|value|PPC603diab" value="diab"/>

+            <stringAttribute key="BLD::Info|Macro|TOOL_FAMILY|value|PPC603gnu" value="gnu"/>

+            <stringAttribute key="BLD::Info|Macro|TOOL_PATH|value|PPC32diab" value=""/>

+            <stringAttribute key="BLD::Info|Macro|TOOL_PATH|value|PPC32gnu" value=""/>

+            <stringAttribute key="BLD::Info|Macro|TOOL_PATH|value|PPC603diab" value=""/>

+            <stringAttribute key="BLD::Info|Macro|TOOL_PATH|value|PPC603gnu" value=""/>

+            <stringAttribute key="BLD::Info|Macro|TOOL|value|PPC32diab" value="diab"/>

+            <stringAttribute key="BLD::Info|Macro|TOOL|value|PPC32gnu" value="gnu"/>

+            <stringAttribute key="BLD::Info|Macro|TOOL|value|PPC603diab" value="diab"/>

+            <stringAttribute key="BLD::Info|Macro|TOOL|value|PPC603gnu" value="gnu"/>

+            <stringAttribute key="BLD::Info|Macro|VX_CPU_FAMILY|value|PPC32diab" value="ppc"/>

+            <stringAttribute key="BLD::Info|Macro|VX_CPU_FAMILY|value|PPC32gnu" value="ppc"/>

+            <stringAttribute key="BLD::Info|Macro|VX_CPU_FAMILY|value|PPC603diab" value="ppc"/>

+            <stringAttribute key="BLD::Info|Macro|VX_CPU_FAMILY|value|PPC603gnu" value="ppc"/>

+            <listAttribute key="BLD::Info|Tools">

+                <stringAttribute value="C-Compiler"/>

+                <stringAttribute value="C++-Compiler"/>

+                <stringAttribute value="Linker"/>

+                <stringAttribute value="Partial Image Linker"/>

+                <stringAttribute value="Librarian"/>

+                <stringAttribute value="Assembler"/>

+            </listAttribute>

+            <stringAttribute key="BLD::Info|Tool|Assembler|cmd|PPC32diab" value="echo &quot;building $@&quot;;%assemblerprefix% $(TOOL_PATH)dcc %DebugModeFlags% %ToolFlags% $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|cmd|PPC32gnu" value="echo &quot;building $@&quot;;%assemblerprefix% $(TOOL_PATH)ccppc %DebugModeFlags% %ToolFlags% $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|cmd|PPC603diab" value="echo &quot;building $@&quot;;%assemblerprefix% $(TOOL_PATH)dcc %DebugModeFlags% %ToolFlags% $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|cmd|PPC603gnu" value="echo &quot;building $@&quot;;%assemblerprefix% $(TOOL_PATH)ccppc %DebugModeFlags% %ToolFlags% $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|dbgFlags|PPC32diab" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|dbgFlags|PPC32gnu" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|dbgFlags|PPC603diab" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|dbgFlags|PPC603gnu" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|derivedSigs|PPC32diab" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|derivedSigs|PPC32gnu" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|derivedSigs|PPC603diab" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|derivedSigs|PPC603gnu" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|flags|PPC32diab" value="$(CC_ARCH_SPEC) -W:c:,-Xclib-optim-off -Xansi -Xlocal-data-area-static-only -Xpreprocess-assembly -Xcpp-no-space  -Xmake-dependency=0xd"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|flags|PPC32gnu" value="$(CC_ARCH_SPEC) -ansi   -xassembler-with-cpp -MD -MP"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|flags|PPC603diab" value="$(CC_ARCH_SPEC) -W:c:,-Xclib-optim-off -Xansi -Xlocal-data-area-static-only -Xpreprocess-assembly -Xcpp-no-space  -Xmake-dependency=0xd"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|flags|PPC603gnu" value="$(CC_ARCH_SPEC) -ansi   -xassembler-with-cpp -MD -MP"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|nonDbgFlags|PPC32diab" value="-XO -Xsize-opt"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|nonDbgFlags|PPC32gnu" value="-O2 -fstrength-reduce -fno-builtin"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|nonDbgFlags|PPC603diab" value="-XO -Xsize-opt"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|nonDbgFlags|PPC603gnu" value="-O2 -fstrength-reduce -fno-builtin"/>

+            <booleanAttribute key="BLD::Info|Tool|Assembler|object" value="true"/>

+            <booleanAttribute key="BLD::Info|Tool|Assembler|passAble" value="false"/>

+            <stringAttribute key="BLD::Info|Tool|Assembler|sigs" value="*.s"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|cmd|PPC32diab" value="echo &quot;building $@&quot;;%cppcompilerprefix% $(TOOL_PATH)dcc %DebugModeFlags% %ToolFlags% $(ADDED_C++FLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|cmd|PPC32gnu" value="echo &quot;building $@&quot;;%cppcompilerprefix% $(TOOL_PATH)ccppc %DebugModeFlags% %ToolFlags% $(ADDED_C++FLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|cmd|PPC603diab" value="echo &quot;building $@&quot;;%cppcompilerprefix% $(TOOL_PATH)dcc %DebugModeFlags% %ToolFlags% $(ADDED_C++FLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|cmd|PPC603gnu" value="echo &quot;building $@&quot;;%cppcompilerprefix% $(TOOL_PATH)ccppc %DebugModeFlags% %ToolFlags% $(ADDED_C++FLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|dbgFlags|PPC32diab" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|dbgFlags|PPC32gnu" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|dbgFlags|PPC603diab" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|dbgFlags|PPC603gnu" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|derivedSigs|PPC32diab" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|derivedSigs|PPC32gnu" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|derivedSigs|PPC603diab" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|derivedSigs|PPC603gnu" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|flags|PPC32diab" value="$(CC_ARCH_SPEC) -W:c:,-Xclib-optim-off -Xansi -Xlocal-data-area-static-only -Xforce-declarations  -Xmake-dependency=0xd"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|flags|PPC32gnu" value="$(CC_ARCH_SPEC) -ansi -Wall  -MD -MP"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|flags|PPC603diab" value="$(CC_ARCH_SPEC) -W:c:,-Xclib-optim-off -Xansi -Xlocal-data-area-static-only -Xforce-declarations  -Xmake-dependency=0xd"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|flags|PPC603gnu" value="$(CC_ARCH_SPEC) -ansi -Wall  -MD -MP -mlongcall"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|nonDbgFlags|PPC32diab" value="-XO -Xsize-opt"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|nonDbgFlags|PPC32gnu" value="-O2 -fstrength-reduce -fno-builtin"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|nonDbgFlags|PPC603diab" value="-XO -Xsize-opt"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|nonDbgFlags|PPC603gnu" value="-O2 -fstrength-reduce -fno-builtin"/>

+            <booleanAttribute key="BLD::Info|Tool|C++-Compiler|object" value="true"/>

+            <booleanAttribute key="BLD::Info|Tool|C++-Compiler|passAble" value="false"/>

+            <stringAttribute key="BLD::Info|Tool|C++-Compiler|sigs" value="*.cpp;*.C;*.cxx;*.cc"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|cmd|PPC32diab" value="echo &quot;building $@&quot;;%ccompilerprefix% $(TOOL_PATH)dcc %DebugModeFlags% %ToolFlags% $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|cmd|PPC32gnu" value="echo &quot;building $@&quot;;%ccompilerprefix% $(TOOL_PATH)ccppc %DebugModeFlags% %ToolFlags% $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|cmd|PPC603diab" value="echo &quot;building $@&quot;;%ccompilerprefix% $(TOOL_PATH)dcc %DebugModeFlags% %ToolFlags% $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|cmd|PPC603gnu" value="echo &quot;building $@&quot;;%ccompilerprefix% $(TOOL_PATH)ccppc %DebugModeFlags% %ToolFlags% $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES) -o %OutFile% -c %InFile%"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|dbgFlags|PPC32diab" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|dbgFlags|PPC32gnu" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|dbgFlags|PPC603diab" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|dbgFlags|PPC603gnu" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|derivedSigs|PPC32diab" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|derivedSigs|PPC32gnu" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|derivedSigs|PPC603diab" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|derivedSigs|PPC603gnu" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|flags|PPC32diab" value="$(CC_ARCH_SPEC) -W:c:,-Xclib-optim-off -Xansi -Xlocal-data-area-static-only -Xforce-declarations  -Xmake-dependency=0xd"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|flags|PPC32gnu" value="$(CC_ARCH_SPEC) -ansi  -Wall  -MD -MP"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|flags|PPC603diab" value="$(CC_ARCH_SPEC) -W:c:,-Xclib-optim-off -Xansi -Xlocal-data-area-static-only -Xforce-declarations  -Xmake-dependency=0xd"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|flags|PPC603gnu" value="$(CC_ARCH_SPEC) -ansi  -Wall  -MD -MP -mlongcall"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|nonDbgFlags|PPC32diab" value="-XO -Xsize-opt"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|nonDbgFlags|PPC32gnu" value="-O2 -fstrength-reduce -fno-builtin"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|nonDbgFlags|PPC603diab" value="-XO -Xsize-opt"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|nonDbgFlags|PPC603gnu" value="-O2 -fstrength-reduce -fno-builtin"/>

+            <booleanAttribute key="BLD::Info|Tool|C-Compiler|object" value="true"/>

+            <booleanAttribute key="BLD::Info|Tool|C-Compiler|passAble" value="false"/>

+            <stringAttribute key="BLD::Info|Tool|C-Compiler|sigs" value="*.c"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|cmd|PPC32diab" value="echo &quot;building $@&quot;;%archiverprefix% $(TOOL_PATH)dar %ToolFlags% %OutFile% %Objects%"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|cmd|PPC32gnu" value="echo &quot;building $@&quot;;%archiverprefix% $(TOOL_PATH)arppc %ToolFlags% %OutFile% %Objects%"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|cmd|PPC603diab" value="echo &quot;building $@&quot;;%archiverprefix% $(TOOL_PATH)dar %ToolFlags% %OutFile% %Objects%"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|cmd|PPC603gnu" value="echo &quot;building $@&quot;;%archiverprefix% $(TOOL_PATH)arppc %ToolFlags% %OutFile% %Objects%"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|dbgFlags|PPC32diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|dbgFlags|PPC32gnu" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|dbgFlags|PPC603diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|dbgFlags|PPC603gnu" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|derivedSigs|PPC32diab" value="*.a"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|derivedSigs|PPC32gnu" value="*.a"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|derivedSigs|PPC603diab" value="*.a"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|derivedSigs|PPC603gnu" value="*.a"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|flags|PPC32diab" value="crus"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|flags|PPC32gnu" value="crus"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|flags|PPC603diab" value="crus"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|flags|PPC603gnu" value="crus"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|nonDbgFlags|PPC32diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|nonDbgFlags|PPC32gnu" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|nonDbgFlags|PPC603diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|nonDbgFlags|PPC603gnu" value=""/>

+            <booleanAttribute key="BLD::Info|Tool|Librarian|object" value="false"/>

+            <booleanAttribute key="BLD::Info|Tool|Librarian|passAble" value="true"/>

+            <stringAttribute key="BLD::Info|Tool|Librarian|sigs" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Linker|cmd|PPC32diab" value="echo &quot;building $@&quot;;rm -f %OutFile%;ddump -Ng %Objects% %Libraries% | tclsh $(WIND_BASE)/host/resource/hutils/tcl/munch.tcl -c ppc &gt; $(OBJ_DIR)/ctdt.c;%ccompilerprefix% $(TOOL_PATH)dcc %DebugModeFlags% $(CC_ARCH_SPEC) -Xdollar-in-ident -Xforce-declarations $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES)  -o $(OBJ_DIR)/ctdt.o -c $(OBJ_DIR)/ctdt.c;%linkerprefix% $(TOOL_PATH)dld -tPPCFH:vxworks63 -X -r5 %ToolFlags% -o %OutFile% $(OBJ_DIR)/ctdt.o %Objects% %Libraries% $(LIBPATH) $(LIBS)  $(ADDED_LIBPATH) $(ADDED_LIBS) &amp;&amp; if [ &quot;$(EXPAND_DBG)&quot; = &quot;1&quot; ]; then plink &quot;$@&quot;;fi"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|cmd|PPC32gnu" value="echo &quot;building $@&quot;;rm -f %OutFile%;nmppc %Objects% %Libraries% | tclsh $(WIND_BASE)/host/resource/hutils/tcl/munch.tcl -c ppc &gt; $(OBJ_DIR)/ctdt.c;%ccompilerprefix% $(TOOL_PATH)ccppc %DebugModeFlags% $(CC_ARCH_SPEC) -fdollars-in-identifiers -Wall $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES)  -o $(OBJ_DIR)/ctdt.o -c $(OBJ_DIR)/ctdt.c;%linkerprefix% $(TOOL_PATH)ccppc -r -nostdlib -Wl,-X %ToolFlags% -o %OutFile% $(OBJ_DIR)/ctdt.o %Objects% %Libraries% $(LIBPATH) $(LIBS)  $(ADDED_LIBPATH) $(ADDED_LIBS) &amp;&amp; if [ &quot;$(EXPAND_DBG)&quot; = &quot;1&quot; ]; then plink &quot;$@&quot;;fi"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|cmd|PPC603diab" value="echo &quot;building $@&quot;;rm -f %OutFile%;ddump -Ng %Objects% %Libraries% | tclsh $(WIND_BASE)/host/resource/hutils/tcl/munch.tcl -c ppc &gt; $(OBJ_DIR)/ctdt.c;%ccompilerprefix% $(TOOL_PATH)dcc %DebugModeFlags% $(CC_ARCH_SPEC) -Xdollar-in-ident -Xforce-declarations $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES)  -o $(OBJ_DIR)/ctdt.o -c $(OBJ_DIR)/ctdt.c;%linkerprefix% $(TOOL_PATH)dld -tPPC603FH:vxworks63 -X -r5 %ToolFlags% -o %OutFile% $(OBJ_DIR)/ctdt.o %Objects% %Libraries% $(LIBPATH) $(LIBS)  $(ADDED_LIBPATH) $(ADDED_LIBS) &amp;&amp; if [ &quot;$(EXPAND_DBG)&quot; = &quot;1&quot; ]; then plink &quot;$@&quot;;fi"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|cmd|PPC603gnu" value="echo &quot;building $@&quot;;rm -f %OutFile%;nmppc %Objects% %Libraries% | tclsh $(WIND_BASE)/host/resource/hutils/tcl/munch.tcl -c ppc &gt; $(OBJ_DIR)/ctdt.c;%ccompilerprefix% $(TOOL_PATH)ccppc %DebugModeFlags% $(CC_ARCH_SPEC) -fdollars-in-identifiers -Wall $(ADDED_CFLAGS) %Includes% $(ADDED_INCLUDES) -DCPU=$(CPU) -DTOOL_FAMILY=$(TOOL_FAMILY) -DTOOL=$(TOOL) -D_WRS_KERNEL   $(DEFINES)  -o $(OBJ_DIR)/ctdt.o -c $(OBJ_DIR)/ctdt.c;%linkerprefix% $(TOOL_PATH)ccppc -r -nostdlib -Wl,-X %ToolFlags% -o %OutFile% $(OBJ_DIR)/ctdt.o %Objects% %Libraries% $(LIBPATH) $(LIBS)  $(ADDED_LIBPATH) $(ADDED_LIBS) &amp;&amp; if [ &quot;$(EXPAND_DBG)&quot; = &quot;1&quot; ]; then plink &quot;$@&quot;;fi"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|dbgFlags|PPC32diab" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|dbgFlags|PPC32gnu" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|dbgFlags|PPC603diab" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|dbgFlags|PPC603gnu" value="-g"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|derivedSigs|PPC32diab" value="*.out"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|derivedSigs|PPC32gnu" value="*.out"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|derivedSigs|PPC603diab" value="*.out"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|derivedSigs|PPC603gnu" value="*.out"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|flags|PPC32diab" value="-r4"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|flags|PPC32gnu" value="-T $(WIND_BASE)/target/h/tool/gnu/ldscripts/link.OUT"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|flags|PPC603diab" value="-r4"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|flags|PPC603gnu" value="-T $(WIND_BASE)/target/h/tool/gnu/ldscripts/link.OUT"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|nonDbgFlags|PPC32diab" value="-XO -Xsize-opt"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|nonDbgFlags|PPC32gnu" value="-O2 -fstrength-reduce -fno-builtin"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|nonDbgFlags|PPC603diab" value="-XO -Xsize-opt"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|nonDbgFlags|PPC603gnu" value="-O2 -fstrength-reduce -fno-builtin"/>

+            <booleanAttribute key="BLD::Info|Tool|Linker|object" value="false"/>

+            <booleanAttribute key="BLD::Info|Tool|Linker|passAble" value="false"/>

+            <stringAttribute key="BLD::Info|Tool|Linker|sigs" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|cmd|PPC32diab" value="echo &quot;building $@&quot;;%linkerprefix% $(TOOL_PATH)dld -tPPCFH:vxworks63 -X -r5 %ToolFlags% -o %OutFile% %Objects% $(LIBPATH) $(LIBS) $(ADDED_LIBPATH) $(ADDED_LIBS)  &amp;&amp; if [ &quot;$(EXPAND_DBG)&quot; = &quot;1&quot; ]; then plink &quot;$@&quot;;fi"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|cmd|PPC32gnu" value="echo &quot;building $@&quot;;%linkerprefix% $(TOOL_PATH)ccppc -r -nostdlib -Wl,-X %ToolFlags% -o %OutFile% %Objects% $(LIBPATH) $(LIBS) $(ADDED_LIBPATH) $(ADDED_LIBS)  &amp;&amp; if [ &quot;$(EXPAND_DBG)&quot; = &quot;1&quot; ]; then plink &quot;$@&quot;;fi"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|cmd|PPC603diab" value="echo &quot;building $@&quot;;%linkerprefix% $(TOOL_PATH)dld -tPPC603FH:vxworks63 -X -r5 %ToolFlags% -o %OutFile% %Objects% $(LIBPATH) $(LIBS) $(ADDED_LIBPATH) $(ADDED_LIBS)  &amp;&amp; if [ &quot;$(EXPAND_DBG)&quot; = &quot;1&quot; ]; then plink &quot;$@&quot;;fi"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|cmd|PPC603gnu" value="echo &quot;building $@&quot;;%linkerprefix% $(TOOL_PATH)ccppc -r -nostdlib -Wl,-X %ToolFlags% -o %OutFile% %Objects% $(LIBPATH) $(LIBS) $(ADDED_LIBPATH) $(ADDED_LIBS)  &amp;&amp; if [ &quot;$(EXPAND_DBG)&quot; = &quot;1&quot; ]; then plink &quot;$@&quot;;fi"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|dbgFlags|PPC32diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|dbgFlags|PPC32gnu" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|dbgFlags|PPC603diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|dbgFlags|PPC603gnu" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|derivedSigs|PPC32diab" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|derivedSigs|PPC32gnu" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|derivedSigs|PPC603diab" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|derivedSigs|PPC603gnu" value="*.o"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|flags|PPC32diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|flags|PPC32gnu" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|flags|PPC603diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|flags|PPC603gnu" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|nonDbgFlags|PPC32diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|nonDbgFlags|PPC32gnu" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|nonDbgFlags|PPC603diab" value=""/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|nonDbgFlags|PPC603gnu" value=""/>

+            <booleanAttribute key="BLD::Info|Tool|Partial Image Linker|object" value="false"/>

+            <booleanAttribute key="BLD::Info|Tool|Partial Image Linker|passAble" value="true"/>

+            <stringAttribute key="BLD::Info|Tool|Partial Image Linker|sigs" value=""/>

+            <stringAttribute key="BLD::Info|cmd" value="%makeprefix% make --no-print-directory"/>

+            <stringAttribute key="BLD::Info|defaultSpec" value="PPC603gnu"/>

+            <stringAttribute key="BLD::Info|redirDir|PPC32diab" value="PPC32diab"/>

+            <stringAttribute key="BLD::Info|redirDir|PPC32gnu" value="PPC32gnu"/>

+            <stringAttribute key="BLD::Info|redirDir|PPC603diab" value="PPC603diab"/>

+            <stringAttribute key="BLD::Info|redirDir|PPC603gnu" value="PPC603gnu"/>

+            <stringAttribute key="BLD::Info|redirRoot" value=""/>

+            <listAttribute key="BLD::Info|specs">

+                <stringAttribute value="PPC32diab"/>

+                <stringAttribute value="PPC32gnu"/>

+                <stringAttribute value="PPC603diab"/>

+                <stringAttribute value="PPC603gnu"/>

+            </listAttribute>

+            <intAttribute key="BuildSupportEnabled" value="1"/>

+            <listAttribute key="BuildSupportForBuildSpecs">

+                <stringAttribute value="PPC603gnu"/>

+            </listAttribute>

+            <booleanAttribute key="BuildTargetCentric" value="true"/>

+        </mapAttribute>

+    </attributes>

+    <buildtargets>

+        <buildtarget buildtool="Linker" name="CommandBasedRobotTemplate" passed="false" targetname="CommandBasedRobotTemplate">

+            <contents>

+                <folder name="/Robot2013" recursive="true"/>

+            </contents>

+        </buildtarget>

+        <buildtarget buildtool="Partial Image Linker" name="CommandBassedRobotTemplate_partialImage" passed="true" targetname="CommandBassedRobotTemplate_partialImage">

+            <contents>

+                <folder name="/Robot2013" recursive="true"/>

+            </contents>

+        </buildtarget>

+    </buildtargets>

+</wrxml>

diff --git a/robot_builder/Robot2013/Commands/AutonomousCommand.cpp b/robot_builder/Robot2013/Commands/AutonomousCommand.cpp
new file mode 100644
index 0000000..11f113d
--- /dev/null
+++ b/robot_builder/Robot2013/Commands/AutonomousCommand.cpp
@@ -0,0 +1,36 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "AutonomousCommand.h"

+AutonomousCommand::AutonomousCommand() {

+	// Use requires() here to declare subsystem dependencies

+	// eg. requires(chassis);

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=REQUIRES

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=REQUIRES

+}

+// Called just before this Command runs the first time

+void AutonomousCommand::Initialize() {

+	

+}

+// Called repeatedly when this Command is scheduled to run

+void AutonomousCommand::Execute() {

+	

+}

+// Make this return true when this Command no longer needs to run execute()

+bool AutonomousCommand::IsFinished() {

+	return false;

+}

+// Called once after isFinished returns true

+void AutonomousCommand::End() {

+	

+}

+// Called when another command which requires one or more of the same

+// subsystems is scheduled to run

+void AutonomousCommand::Interrupted() {

+}

diff --git a/robot_builder/Robot2013/Commands/AutonomousCommand.h b/robot_builder/Robot2013/Commands/AutonomousCommand.h
new file mode 100644
index 0000000..ae5c42d
--- /dev/null
+++ b/robot_builder/Robot2013/Commands/AutonomousCommand.h
@@ -0,0 +1,34 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+

+

+#ifndef AUTONOMOUS_COMMAND_H

+#define AUTONOMOUS_COMMAND_H

+

+

+#include "Commands/Subsystem.h"

+#include "../Robot.h"

+

+/**

+ *

+ *

+ * @author ExampleAuthor

+ */

+class AutonomousCommand: public Command {

+public:

+	AutonomousCommand();

+	virtual void Initialize();

+	virtual void Execute();

+	virtual bool IsFinished();

+	virtual void End();

+	virtual void Interrupted();

+};

+

+#endif

diff --git a/robot_builder/Robot2013/OI.cpp b/robot_builder/Robot2013/OI.cpp
new file mode 100644
index 0000000..e79ed3b
--- /dev/null
+++ b/robot_builder/Robot2013/OI.cpp
@@ -0,0 +1,24 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "OI.h"

+// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=INCLUDES

+#include "SmartDashboard/SmartDashboard.h"

+#include "Commands/AutonomousCommand.h"

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=INCLUDES

+OI::OI() {

+	// Process operator interface input here.

+        // BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS

+     

+        // SmartDashboard Buttons

+	SmartDashboard::PutData("Autonomous Command", new AutonomousCommand());

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS

+}

+// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=FUNCTIONS

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=FUNCTIONS

diff --git a/robot_builder/Robot2013/OI.h b/robot_builder/Robot2013/OI.h
new file mode 100644
index 0000000..30bb5ff
--- /dev/null
+++ b/robot_builder/Robot2013/OI.h
@@ -0,0 +1,23 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef OI_H

+#define OI_H

+#include "WPILib.h"

+class OI {

+private:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+public:

+	OI();

+ 

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=PROTOTYPES

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=PROTOTYPES

+};

+#endif

diff --git a/robot_builder/Robot2013/Robot.cpp b/robot_builder/Robot2013/Robot.cpp
new file mode 100644
index 0000000..691f033
--- /dev/null
+++ b/robot_builder/Robot2013/Robot.cpp
@@ -0,0 +1,69 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "Robot.h"

+// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=INITIALIZATION

+AirCompressor* Robot::airCompressor = 0;

+DriveTrain* Robot::driveTrain = 0;

+ShooterWheelPIDController* Robot::shooterWheelPIDController = 0;

+Shooter* Robot::shooter = 0;

+FrisbeeStorage* Robot::frisbeeStorage = 0;

+FrisbeePickup* Robot::frisbeePickup = 0;

+PickupArm* Robot::pickupArm = 0;

+OI* Robot::oi = 0;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=INITIALIZATION

+void Robot::RobotInit() {

+	RobotMap::init();

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS

+	airCompressor = new AirCompressor();

+	driveTrain = new DriveTrain();

+	shooterWheelPIDController = new ShooterWheelPIDController();

+	shooter = new Shooter();

+	frisbeeStorage = new FrisbeeStorage();

+	frisbeePickup = new FrisbeePickup();

+	pickupArm = new PickupArm();

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS

+	// This MUST be here. If the OI creates Commands (which it very likely

+	// will), constructing it during the construction of CommandBase (from

+	// which commands extend), subsystems are not guaranteed to be

+	// yet. Thus, their requires() statements may grab null pointers. Bad

+	// news. Don't move it.

+	oi = new OI();

+	lw = LiveWindow::GetInstance();

+	// instantiate the command used for the autonomous period

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=AUTONOMOUS

+	autonomousCommand = new AutonomousCommand();

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=AUTONOMOUS

+  }

+	

+void Robot::AutonomousInit() {

+	if (autonomousCommand != NULL)

+		autonomousCommand->Start();

+}

+	

+void Robot::AutonomousPeriodic() {

+	Scheduler::GetInstance()->Run();

+}

+	

+void Robot::TeleopInit() {

+	// This makes sure that the autonomous stops running when

+	// teleop starts running. If you want the autonomous to 

+	// continue until interrupted by another command, remove

+	// this line or comment it out.

+	autonomousCommand->Cancel();

+}

+	

+void Robot::TeleopPeriodic() {

+	if (autonomousCommand != NULL)

+		Scheduler::GetInstance()->Run();

+}

+void Robot::TestPeriodic() {

+	lw->Run();

+}

+START_ROBOT_CLASS(Robot);

diff --git a/robot_builder/Robot2013/Robot.h b/robot_builder/Robot2013/Robot.h
new file mode 100644
index 0000000..5dcf9b5
--- /dev/null
+++ b/robot_builder/Robot2013/Robot.h
@@ -0,0 +1,48 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef _ROBOT_H

+#define _ROBOT_H

+#include "WPILib.h"

+#include "Commands/Command.h"

+#include "RobotMap.h"

+#include "LiveWindow/LiveWindow.h"

+// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=INCLUDES

+#include "Commands/AutonomousCommand.h"

+#include "Subsystems/AirCompressor.h"

+#include "Subsystems/DriveTrain.h"

+#include "Subsystems/FrisbeePickup.h"

+#include "Subsystems/FrisbeeStorage.h"

+#include "Subsystems/PickupArm.h"

+#include "Subsystems/Shooter.h"

+#include "Subsystems/ShooterWheelPIDController.h"

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=INCLUDES

+#include "OI.h"

+class Robot : public IterativeRobot {

+public:

+	Command *autonomousCommand;

+	static OI *oi;

+	LiveWindow *lw;

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	static AirCompressor* airCompressor;

+	static DriveTrain* driveTrain;

+	static ShooterWheelPIDController* shooterWheelPIDController;

+	static Shooter* shooter;

+	static FrisbeeStorage* frisbeeStorage;

+	static FrisbeePickup* frisbeePickup;

+	static PickupArm* pickupArm;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	virtual void RobotInit();

+	virtual void AutonomousInit();

+	virtual void AutonomousPeriodic();

+	virtual void TeleopInit();

+	virtual void TeleopPeriodic();

+	virtual void TestPeriodic();

+};

+#endif

diff --git a/robot_builder/Robot2013/RobotMap.cpp b/robot_builder/Robot2013/RobotMap.cpp
new file mode 100644
index 0000000..67ef795
--- /dev/null
+++ b/robot_builder/Robot2013/RobotMap.cpp
@@ -0,0 +1,149 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "RobotMap.h"

+#include "LiveWindow/LiveWindow.h"

+// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=ALLOCATION

+Compressor* RobotMap::airCompressorAirCompressor = NULL;

+Solenoid* RobotMap::driveTrainLeftShifter = NULL;

+Solenoid* RobotMap::driveTrainRightShifter = NULL;

+SpeedController* RobotMap::driveTrainLeftMotors1and2 = NULL;

+SpeedController* RobotMap::driveTrainLeftMotor3 = NULL;

+SpeedController* RobotMap::driveTrainRightMotors1and2 = NULL;

+SpeedController* RobotMap::driveTrainRightMotor3 = NULL;

+RobotDrive* RobotMap::driveTrainRobotDrive = NULL;

+Encoder* RobotMap::driveTrainQuadratureEncoderLeft = NULL;

+Encoder* RobotMap::driveTrainQuadratureEncoderRight = NULL;

+SpeedController* RobotMap::shooterWheelPIDControllerShooterMotor = NULL;

+Encoder* RobotMap::shooterWheelPIDControllerShooterSpeedEncoder = NULL;

+SpeedController* RobotMap::shooterShooterTiltMotor = NULL;

+Encoder* RobotMap::shooterShooterTiltEncoder = NULL;

+GearTooth* RobotMap::shooterShooterTiltHomeSensor = NULL;

+Solenoid* RobotMap::shooterLatchFrisbeeSolenoid = NULL;

+Solenoid* RobotMap::shooterLoadFrisbeeSolenoid = NULL;

+Solenoid* RobotMap::shooterShootSolenoid = NULL;

+SpeedController* RobotMap::frisbeeStorageFrisbeeIndexerMotor = NULL;

+Encoder* RobotMap::frisbeeStorageFrisbeeIndexerSpeedEncoder = NULL;

+DigitalInput* RobotMap::frisbeeStorageFrisbeeInputOpticalSensor = NULL;

+DigitalInput* RobotMap::frisbeeStorageFrisbeeIndexOpticalSensor = NULL;

+DigitalInput* RobotMap::frisbeeStorageFrisbeeReadytoshootOpticalSensor = NULL;

+SpeedController* RobotMap::frisbeePickupIntakeandCenteringRollerMotors = NULL;

+SpeedController* RobotMap::pickupArmPickupArmMotor = NULL;

+Encoder* RobotMap::pickupArmPickupArmEncoder = NULL;

+PIDController* RobotMap::pickupArmPickupArmPIDController = NULL;

+GearTooth* RobotMap::pickupArmPickupArmHomeSensor = NULL;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=ALLOCATION

+void RobotMap::init() {

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS

+	LiveWindow* lw = LiveWindow::GetInstance();

+	airCompressorAirCompressor = new Compressor(1, 5, 1, 1);

+	

+	

+	driveTrainLeftShifter = new Solenoid(1, 1);

+	lw->AddActuator("Drive Train", "Left Shifter", driveTrainLeftShifter);

+	

+	driveTrainRightShifter = new Solenoid(1, 2);

+	lw->AddActuator("Drive Train", "Right Shifter", driveTrainRightShifter);

+	

+	driveTrainLeftMotors1and2 = new Talon(1, 5);

+	lw->AddActuator("Drive Train", "Left Motors 1 and 2", (Talon*) driveTrainLeftMotors1and2);

+	

+	driveTrainLeftMotor3 = new Talon(1, 6);

+	lw->AddActuator("Drive Train", "Left Motor 3", (Talon*) driveTrainLeftMotor3);

+	

+	driveTrainRightMotors1and2 = new Talon(1, 2);

+	lw->AddActuator("Drive Train", "Right Motors 1 and 2", (Talon*) driveTrainRightMotors1and2);

+	

+	driveTrainRightMotor3 = new Talon(1, 3);

+	lw->AddActuator("Drive Train", "Right Motor 3", (Talon*) driveTrainRightMotor3);

+	

+	driveTrainRobotDrive = new RobotDrive(driveTrainLeftMotors1and2, driveTrainLeftMotor3,

+              driveTrainRightMotors1and2, driveTrainRightMotor3);

+	

+	driveTrainRobotDrive->SetSafetyEnabled(true);

+        driveTrainRobotDrive->SetExpiration(0.1);

+        driveTrainRobotDrive->SetSensitivity(0.5);

+        driveTrainRobotDrive->SetMaxOutput(1.0);

+        driveTrainRobotDrive->SetInvertedMotor(RobotDrive::kFrontLeftMotor, true);

+        driveTrainRobotDrive->SetInvertedMotor(RobotDrive::kRearLeftMotor, true);

+	driveTrainQuadratureEncoderLeft = new Encoder(1, 1, 1, 2, false, Encoder::k4X);

+	lw->AddSensor("Drive Train", "Quadrature Encoder Left", driveTrainQuadratureEncoderLeft);

+	driveTrainQuadratureEncoderLeft->SetDistancePerPulse(1.0);

+        driveTrainQuadratureEncoderLeft->SetPIDSourceParameter(Encoder::kRate);

+        driveTrainQuadratureEncoderLeft->Start();

+	driveTrainQuadratureEncoderRight = new Encoder(1, 3, 1, 4, false, Encoder::k4X);

+	lw->AddSensor("Drive Train", "Quadrature Encoder Right", driveTrainQuadratureEncoderRight);

+	driveTrainQuadratureEncoderRight->SetDistancePerPulse(1.0);

+        driveTrainQuadratureEncoderRight->SetPIDSourceParameter(Encoder::kRate);

+        driveTrainQuadratureEncoderRight->Start();

+	shooterWheelPIDControllerShooterMotor = new Talon(1, 1);

+	lw->AddActuator("Shooter Wheel PID Controller", "Shooter Motor", (Talon*) shooterWheelPIDControllerShooterMotor);

+	

+	shooterWheelPIDControllerShooterSpeedEncoder = new Encoder(1, 6, 2, 1, false, Encoder::k4X);

+	lw->AddSensor("Shooter Wheel PID Controller", "Shooter Speed Encoder", shooterWheelPIDControllerShooterSpeedEncoder);

+	shooterWheelPIDControllerShooterSpeedEncoder->SetDistancePerPulse(1.0);

+        shooterWheelPIDControllerShooterSpeedEncoder->SetPIDSourceParameter(Encoder::kRate);

+        shooterWheelPIDControllerShooterSpeedEncoder->Start();

+	shooterShooterTiltMotor = new Talon(1, 4);

+	lw->AddActuator("Shooter", "Shooter Tilt Motor", (Talon*) shooterShooterTiltMotor);

+	

+	shooterShooterTiltEncoder = new Encoder(1, 7, 1, 8, false, Encoder::k4X);

+	lw->AddSensor("Shooter", "Shooter Tilt Encoder", shooterShooterTiltEncoder);

+	shooterShooterTiltEncoder->SetDistancePerPulse(1.0);

+        shooterShooterTiltEncoder->SetPIDSourceParameter(Encoder::kRate);

+        shooterShooterTiltEncoder->Start();

+	shooterShooterTiltHomeSensor = new GearTooth(1, 9, false);

+	lw->AddSensor("Shooter", "Shooter Tilt Home Sensor", shooterShooterTiltHomeSensor);

+	

+	shooterLatchFrisbeeSolenoid = new Solenoid(1, 5);

+	lw->AddActuator("Shooter", "Latch Frisbee Solenoid", shooterLatchFrisbeeSolenoid);

+	

+	shooterLoadFrisbeeSolenoid = new Solenoid(1, 3);

+	lw->AddActuator("Shooter", "Load Frisbee Solenoid", shooterLoadFrisbeeSolenoid);

+	

+	shooterShootSolenoid = new Solenoid(1, 4);

+	lw->AddActuator("Shooter", "Shoot Solenoid", shooterShootSolenoid);

+	

+	frisbeeStorageFrisbeeIndexerMotor = new Talon(1, 7);

+	lw->AddActuator("Frisbee Storage", "Frisbee Indexer Motor", (Talon*) frisbeeStorageFrisbeeIndexerMotor);

+	

+	frisbeeStorageFrisbeeIndexerSpeedEncoder = new Encoder(1, 10, 1, 11, false, Encoder::k4X);

+	lw->AddSensor("Frisbee Storage", "Frisbee Indexer Speed Encoder", frisbeeStorageFrisbeeIndexerSpeedEncoder);

+	frisbeeStorageFrisbeeIndexerSpeedEncoder->SetDistancePerPulse(1.0);

+        frisbeeStorageFrisbeeIndexerSpeedEncoder->SetPIDSourceParameter(Encoder::kRate);

+        frisbeeStorageFrisbeeIndexerSpeedEncoder->Start();

+	frisbeeStorageFrisbeeInputOpticalSensor = new DigitalInput(1, 12);

+	lw->AddSensor("Frisbee Storage", "Frisbee Input Optical Sensor", frisbeeStorageFrisbeeInputOpticalSensor);

+	

+	frisbeeStorageFrisbeeIndexOpticalSensor = new DigitalInput(1, 13);

+	lw->AddSensor("Frisbee Storage", "Frisbee Index Optical Sensor", frisbeeStorageFrisbeeIndexOpticalSensor);

+	

+	frisbeeStorageFrisbeeReadytoshootOpticalSensor = new DigitalInput(1, 14);

+	lw->AddSensor("Frisbee Storage", "Frisbee Ready to shoot Optical Sensor", frisbeeStorageFrisbeeReadytoshootOpticalSensor);

+	

+	frisbeePickupIntakeandCenteringRollerMotors = new Talon(1, 8);

+	lw->AddActuator("Frisbee Pickup", "Intake and Centering Roller Motors", (Talon*) frisbeePickupIntakeandCenteringRollerMotors);

+	

+	pickupArmPickupArmMotor = new Talon(1, 9);

+	lw->AddActuator("Pickup Arm", "Pickup Arm Motor", (Talon*) pickupArmPickupArmMotor);

+	

+	pickupArmPickupArmEncoder = new Encoder(2, 2, 2, 3, false, Encoder::k4X);

+	lw->AddSensor("Pickup Arm", "Pickup Arm Encoder", pickupArmPickupArmEncoder);

+	pickupArmPickupArmEncoder->SetDistancePerPulse(1.0);

+        pickupArmPickupArmEncoder->SetPIDSourceParameter(Encoder::kRate);

+        pickupArmPickupArmEncoder->Start();

+	pickupArmPickupArmPIDController = new PIDController(1.0, 0.0, 0.0,/* F: 0.0, */ pickupArmPickupArmEncoder, pickupArmPickupArmMotor, 0.02);

+	lw->AddActuator("Pickup Arm", "Pickup Arm PID Controller", pickupArmPickupArmPIDController);

+	pickupArmPickupArmPIDController->SetContinuous(false); pickupArmPickupArmPIDController->SetAbsoluteTolerance(0.2); 

+        pickupArmPickupArmPIDController->SetOutputRange(-1.0, 1.0);

+	pickupArmPickupArmHomeSensor = new GearTooth(2, 4, false);

+	lw->AddSensor("Pickup Arm", "Pickup Arm Home Sensor", pickupArmPickupArmHomeSensor);

+	

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=CONSTRUCTORS

+}

diff --git a/robot_builder/Robot2013/RobotMap.h b/robot_builder/Robot2013/RobotMap.h
new file mode 100644
index 0000000..7571ba0
--- /dev/null
+++ b/robot_builder/Robot2013/RobotMap.h
@@ -0,0 +1,53 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef ROBOTMAP_H

+#define ROBOTMAP_H

+#include "WPILib.h"

+/**

+ * The RobotMap is a mapping from the ports sensors and actuators are wired into

+ * to a variable name. This provides flexibility changing wiring, makes checking

+ * the wiring easier and significantly reduces the number of magic numbers

+ * floating around.

+ */

+class RobotMap {

+public:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	static Compressor* airCompressorAirCompressor;

+	static Solenoid* driveTrainLeftShifter;

+	static Solenoid* driveTrainRightShifter;

+	static SpeedController* driveTrainLeftMotors1and2;

+	static SpeedController* driveTrainLeftMotor3;

+	static SpeedController* driveTrainRightMotors1and2;

+	static SpeedController* driveTrainRightMotor3;

+	static RobotDrive* driveTrainRobotDrive;

+	static Encoder* driveTrainQuadratureEncoderLeft;

+	static Encoder* driveTrainQuadratureEncoderRight;

+	static SpeedController* shooterWheelPIDControllerShooterMotor;

+	static Encoder* shooterWheelPIDControllerShooterSpeedEncoder;

+	static SpeedController* shooterShooterTiltMotor;

+	static Encoder* shooterShooterTiltEncoder;

+	static GearTooth* shooterShooterTiltHomeSensor;

+	static Solenoid* shooterLatchFrisbeeSolenoid;

+	static Solenoid* shooterLoadFrisbeeSolenoid;

+	static Solenoid* shooterShootSolenoid;

+	static SpeedController* frisbeeStorageFrisbeeIndexerMotor;

+	static Encoder* frisbeeStorageFrisbeeIndexerSpeedEncoder;

+	static DigitalInput* frisbeeStorageFrisbeeInputOpticalSensor;

+	static DigitalInput* frisbeeStorageFrisbeeIndexOpticalSensor;

+	static DigitalInput* frisbeeStorageFrisbeeReadytoshootOpticalSensor;

+	static SpeedController* frisbeePickupIntakeandCenteringRollerMotors;

+	static SpeedController* pickupArmPickupArmMotor;

+	static Encoder* pickupArmPickupArmEncoder;

+	static PIDController* pickupArmPickupArmPIDController;

+	static GearTooth* pickupArmPickupArmHomeSensor;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	static void init();

+};

+#endif

diff --git a/robot_builder/Robot2013/Subsystems/AirCompressor.cpp b/robot_builder/Robot2013/Subsystems/AirCompressor.cpp
new file mode 100644
index 0000000..55be1be
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/AirCompressor.cpp
@@ -0,0 +1,25 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "AirCompressor.h"

+#include "../Robotmap.h"

+AirCompressor::AirCompressor() : Subsystem("AirCompressor") {

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	airCompressor = RobotMap::airCompressorAirCompressor;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+}

+    

+void AirCompressor::InitDefaultCommand() {

+	// Set the default command for a subsystem here.

+	//SetDefaultCommand(new MySpecialCommand());

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+}

+// Put methods for controlling this subsystem

+// here. Call these from Commands.

diff --git a/robot_builder/Robot2013/Subsystems/AirCompressor.h b/robot_builder/Robot2013/Subsystems/AirCompressor.h
new file mode 100644
index 0000000..d6fe9bd
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/AirCompressor.h
@@ -0,0 +1,30 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef AIR_COMPRESSOR_H

+#define AIR_COMPRESSOR_H

+#include "Commands/Subsystem.h"

+#include "WPILib.h"

+/**

+ *

+ *

+ * @author ExampleAuthor

+ */

+class AirCompressor: public Subsystem {

+private:

+	// It's desirable that everything possible under private except

+	// for methods that implement subsystem capabilities

+public:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	Compressor* airCompressor;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	AirCompressor();

+	void InitDefaultCommand();

+};

+#endif

diff --git a/robot_builder/Robot2013/Subsystems/DriveTrain.cpp b/robot_builder/Robot2013/Subsystems/DriveTrain.cpp
new file mode 100644
index 0000000..7851de4
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/DriveTrain.cpp
@@ -0,0 +1,33 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "DriveTrain.h"

+#include "../Robotmap.h"

+DriveTrain::DriveTrain() : Subsystem("DriveTrain") {

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	leftShifter = RobotMap::driveTrainLeftShifter;

+	rightShifter = RobotMap::driveTrainRightShifter;

+	leftMotors1and2 = RobotMap::driveTrainLeftMotors1and2;

+	leftMotor3 = RobotMap::driveTrainLeftMotor3;

+	rightMotors1and2 = RobotMap::driveTrainRightMotors1and2;

+	rightMotor3 = RobotMap::driveTrainRightMotor3;

+	robotDrive = RobotMap::driveTrainRobotDrive;

+	quadratureEncoderLeft = RobotMap::driveTrainQuadratureEncoderLeft;

+	quadratureEncoderRight = RobotMap::driveTrainQuadratureEncoderRight;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+}

+    

+void DriveTrain::InitDefaultCommand() {

+	// Set the default command for a subsystem here.

+	//SetDefaultCommand(new MySpecialCommand());

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+}

+// Put methods for controlling this subsystem

+// here. Call these from Commands.

diff --git a/robot_builder/Robot2013/Subsystems/DriveTrain.h b/robot_builder/Robot2013/Subsystems/DriveTrain.h
new file mode 100644
index 0000000..eb8f539
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/DriveTrain.h
@@ -0,0 +1,38 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef DRIVE_TRAIN_H

+#define DRIVE_TRAIN_H

+#include "Commands/Subsystem.h"

+#include "WPILib.h"

+/**

+ *

+ *

+ * @author ExampleAuthor

+ */

+class DriveTrain: public Subsystem {

+private:

+	// It's desirable that everything possible under private except

+	// for methods that implement subsystem capabilities

+public:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	Solenoid* leftShifter;

+	Solenoid* rightShifter;

+	SpeedController* leftMotors1and2;

+	SpeedController* leftMotor3;

+	SpeedController* rightMotors1and2;

+	SpeedController* rightMotor3;

+	RobotDrive* robotDrive;

+	Encoder* quadratureEncoderLeft;

+	Encoder* quadratureEncoderRight;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	DriveTrain();

+	void InitDefaultCommand();

+};

+#endif

diff --git a/robot_builder/Robot2013/Subsystems/FrisbeePickup.cpp b/robot_builder/Robot2013/Subsystems/FrisbeePickup.cpp
new file mode 100644
index 0000000..536f2be
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/FrisbeePickup.cpp
@@ -0,0 +1,25 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "FrisbeePickup.h"

+#include "../Robotmap.h"

+FrisbeePickup::FrisbeePickup() : Subsystem("FrisbeePickup") {

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	intakeandCenteringRollerMotors = RobotMap::frisbeePickupIntakeandCenteringRollerMotors;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+}

+    

+void FrisbeePickup::InitDefaultCommand() {

+	// Set the default command for a subsystem here.

+	//SetDefaultCommand(new MySpecialCommand());

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+}

+// Put methods for controlling this subsystem

+// here. Call these from Commands.

diff --git a/robot_builder/Robot2013/Subsystems/FrisbeePickup.h b/robot_builder/Robot2013/Subsystems/FrisbeePickup.h
new file mode 100644
index 0000000..4d996fb
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/FrisbeePickup.h
@@ -0,0 +1,30 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef FRISBEE_PICKUP_H

+#define FRISBEE_PICKUP_H

+#include "Commands/Subsystem.h"

+#include "WPILib.h"

+/**

+ *

+ *

+ * @author ExampleAuthor

+ */

+class FrisbeePickup: public Subsystem {

+private:

+	// It's desirable that everything possible under private except

+	// for methods that implement subsystem capabilities

+public:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	SpeedController* intakeandCenteringRollerMotors;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	FrisbeePickup();

+	void InitDefaultCommand();

+};

+#endif

diff --git a/robot_builder/Robot2013/Subsystems/FrisbeeStorage.cpp b/robot_builder/Robot2013/Subsystems/FrisbeeStorage.cpp
new file mode 100644
index 0000000..3af153c
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/FrisbeeStorage.cpp
@@ -0,0 +1,29 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "FrisbeeStorage.h"

+#include "../Robotmap.h"

+FrisbeeStorage::FrisbeeStorage() : Subsystem("FrisbeeStorage") {

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	frisbeeIndexerMotor = RobotMap::frisbeeStorageFrisbeeIndexerMotor;

+	frisbeeIndexerSpeedEncoder = RobotMap::frisbeeStorageFrisbeeIndexerSpeedEncoder;

+	frisbeeInputOpticalSensor = RobotMap::frisbeeStorageFrisbeeInputOpticalSensor;

+	frisbeeIndexOpticalSensor = RobotMap::frisbeeStorageFrisbeeIndexOpticalSensor;

+	frisbeeReadytoshootOpticalSensor = RobotMap::frisbeeStorageFrisbeeReadytoshootOpticalSensor;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+}

+    

+void FrisbeeStorage::InitDefaultCommand() {

+	// Set the default command for a subsystem here.

+	//SetDefaultCommand(new MySpecialCommand());

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+}

+// Put methods for controlling this subsystem

+// here. Call these from Commands.

diff --git a/robot_builder/Robot2013/Subsystems/FrisbeeStorage.h b/robot_builder/Robot2013/Subsystems/FrisbeeStorage.h
new file mode 100644
index 0000000..8a4c4a8
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/FrisbeeStorage.h
@@ -0,0 +1,34 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef FRISBEE_STORAGE_H

+#define FRISBEE_STORAGE_H

+#include "Commands/Subsystem.h"

+#include "WPILib.h"

+/**

+ *

+ *

+ * @author ExampleAuthor

+ */

+class FrisbeeStorage: public Subsystem {

+private:

+	// It's desirable that everything possible under private except

+	// for methods that implement subsystem capabilities

+public:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	SpeedController* frisbeeIndexerMotor;

+	Encoder* frisbeeIndexerSpeedEncoder;

+	DigitalInput* frisbeeInputOpticalSensor;

+	DigitalInput* frisbeeIndexOpticalSensor;

+	DigitalInput* frisbeeReadytoshootOpticalSensor;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	FrisbeeStorage();

+	void InitDefaultCommand();

+};

+#endif

diff --git a/robot_builder/Robot2013/Subsystems/PickupArm.cpp b/robot_builder/Robot2013/Subsystems/PickupArm.cpp
new file mode 100644
index 0000000..a52daa6
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/PickupArm.cpp
@@ -0,0 +1,28 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "PickupArm.h"

+#include "../Robotmap.h"

+PickupArm::PickupArm() : Subsystem("PickupArm") {

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	pickupArmMotor = RobotMap::pickupArmPickupArmMotor;

+	pickupArmEncoder = RobotMap::pickupArmPickupArmEncoder;

+	pickupArmPIDController = RobotMap::pickupArmPickupArmPIDController;

+	pickupArmHomeSensor = RobotMap::pickupArmPickupArmHomeSensor;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+}

+    

+void PickupArm::InitDefaultCommand() {

+	// Set the default command for a subsystem here.

+	//SetDefaultCommand(new MySpecialCommand());

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+}

+// Put methods for controlling this subsystem

+// here. Call these from Commands.

diff --git a/robot_builder/Robot2013/Subsystems/PickupArm.h b/robot_builder/Robot2013/Subsystems/PickupArm.h
new file mode 100644
index 0000000..0f91014
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/PickupArm.h
@@ -0,0 +1,33 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef PICKUP_ARM_H

+#define PICKUP_ARM_H

+#include "Commands/Subsystem.h"

+#include "WPILib.h"

+/**

+ *

+ *

+ * @author ExampleAuthor

+ */

+class PickupArm: public Subsystem {

+private:

+	// It's desirable that everything possible under private except

+	// for methods that implement subsystem capabilities

+public:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	SpeedController* pickupArmMotor;

+	Encoder* pickupArmEncoder;

+	PIDController* pickupArmPIDController;

+	GearTooth* pickupArmHomeSensor;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	PickupArm();

+	void InitDefaultCommand();

+};

+#endif

diff --git a/robot_builder/Robot2013/Subsystems/Shooter.cpp b/robot_builder/Robot2013/Subsystems/Shooter.cpp
new file mode 100644
index 0000000..bb98a50
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/Shooter.cpp
@@ -0,0 +1,30 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "Shooter.h"

+#include "../Robotmap.h"

+Shooter::Shooter() : Subsystem("Shooter") {

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	shooterTiltMotor = RobotMap::shooterShooterTiltMotor;

+	shooterTiltEncoder = RobotMap::shooterShooterTiltEncoder;

+	shooterTiltHomeSensor = RobotMap::shooterShooterTiltHomeSensor;

+	latchFrisbeeSolenoid = RobotMap::shooterLatchFrisbeeSolenoid;

+	loadFrisbeeSolenoid = RobotMap::shooterLoadFrisbeeSolenoid;

+	shootSolenoid = RobotMap::shooterShootSolenoid;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+}

+    

+void Shooter::InitDefaultCommand() {

+	// Set the default command for a subsystem here.

+	//SetDefaultCommand(new MySpecialCommand());

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+}

+// Put methods for controlling this subsystem

+// here. Call these from Commands.

diff --git a/robot_builder/Robot2013/Subsystems/Shooter.h b/robot_builder/Robot2013/Subsystems/Shooter.h
new file mode 100644
index 0000000..9ce68ca
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/Shooter.h
@@ -0,0 +1,35 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef SHOOTER_H

+#define SHOOTER_H

+#include "Commands/Subsystem.h"

+#include "WPILib.h"

+/**

+ *

+ *

+ * @author ExampleAuthor

+ */

+class Shooter: public Subsystem {

+private:

+	// It's desirable that everything possible under private except

+	// for methods that implement subsystem capabilities

+public:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	SpeedController* shooterTiltMotor;

+	Encoder* shooterTiltEncoder;

+	GearTooth* shooterTiltHomeSensor;

+	Solenoid* latchFrisbeeSolenoid;

+	Solenoid* loadFrisbeeSolenoid;

+	Solenoid* shootSolenoid;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	Shooter();

+	void InitDefaultCommand();

+};

+#endif

diff --git a/robot_builder/Robot2013/Subsystems/ShooterWheelPIDController.cpp b/robot_builder/Robot2013/Subsystems/ShooterWheelPIDController.cpp
new file mode 100644
index 0000000..f71be48
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/ShooterWheelPIDController.cpp
@@ -0,0 +1,49 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#include "ShooterWheelPIDController.h"

+#include "../Robotmap.h"

+#include "SmartDashboard/SmartDashboard.h"

+#include "LiveWindow/LiveWindow.h"

+// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=PID

+ShooterWheelPIDController::ShooterWheelPIDController() : PIDSubsystem("ShooterWheelPIDController", 1.0, 0.0, 0.0) {

+	SetAbsoluteTolerance(0.2);

+	GetPIDController()->SetContinuous(false);

+	LiveWindow::GetInstance()->AddActuator("Shooter Wheel PID Controller", "PIDSubsystem Controller", GetPIDController());

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=PID

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	shooterMotor = RobotMap::shooterWheelPIDControllerShooterMotor;

+	shooterSpeedEncoder = RobotMap::shooterWheelPIDControllerShooterSpeedEncoder;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	// Use these to get going:

+	// SetSetpoint() -  Sets where the PID controller should move the system

+	//                  to

+	// Enable() - Enables the PID controller.

+}

+double ShooterWheelPIDController::ReturnPIDInput() {

+	// Return your input value for the PID loop

+	// e.g. a sensor, like a potentiometer:

+	// yourPot->SetAverageVoltage() / kYourMaxVoltage;	

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=SOURCE

+        return shooterSpeedEncoder->PIDGet();

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=SOURCE

+}

+void ShooterWheelPIDController::UsePIDOutput(double output) {

+	// Use output to drive your system, like a motor

+	// e.g. yourMotor->Set(output);

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=OUTPUT

+	shooterMotor->PIDWrite(output);

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=OUTPUT

+}

+void ShooterWheelPIDController::InitDefaultCommand() {

+	// Set the default command for a subsystem here.

+	//setDefaultCommand(new MySpecialCommand());

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DEFAULT_COMMAND

+}

diff --git a/robot_builder/Robot2013/Subsystems/ShooterWheelPIDController.h b/robot_builder/Robot2013/Subsystems/ShooterWheelPIDController.h
new file mode 100644
index 0000000..5561631
--- /dev/null
+++ b/robot_builder/Robot2013/Subsystems/ShooterWheelPIDController.h
@@ -0,0 +1,30 @@
+// RobotBuilder Version: 0.0.2

+//

+// This file was generated by RobotBuilder. It contains sections of

+// code that are automatically generated and assigned by robotbuilder.

+// These sections will be updated in the future when you export to

+// C++ from RobotBuilder. Do not put any code or make any change in

+// the blocks indicating autogenerated code or it will be lost on an

+// update. Deleting the comments indicating the section will prevent

+// it from being updated in th future.

+#ifndef SHOOTER_WHEEL_PID_CONTROLLER_H

+#define SHOOTER_WHEEL_PID_CONTROLLER_H

+#include "Commands/PIDSubsystem.h"

+#include "WPILib.h"

+/**

+ *

+ *

+ * @author ExampleAuthor

+ */

+class ShooterWheelPIDController: public PIDSubsystem {

+ public:

+	// BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	SpeedController* shooterMotor;

+	Encoder* shooterSpeedEncoder;

+    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=DECLARATIONS

+	ShooterWheelPIDController();

+	double ReturnPIDInput();

+	void UsePIDOutput(double output);

+	void InitDefaultCommand();

+};

+#endif