DriverStation

**DriverStation** is the program used to wirelessly control the robot. Unfortunately, it only runs on Windows (but it apparently works on pirated versions, if you're into that sort of thing).

## Installation

* [Optional] Uninstall all previous versions of National Instruments Software.
	+ Open Control Panel.
	+ Go to Programs, then Programs and Features. Finally, choose Uninstall or Change a Program.
	+ Find National Instruments Software, right click, and choose the Uninstall/Change option.
	+ Choose all of the programs (shift click) and press Remove.
	+ Wait for a very long time, and then restart your computer.
* Go here and download the latest version of the DriverStation installer
* Open the executable (.exe) and choose a location for the archive (.zip). Wait for the download.
* Use the “free trial” of WinRAR (the first link should work on most computers) to extract the archive to a folder (right click, Extract Files…, choose location).
* From the folder you just created, open setup.exe.
* Hit next a bunch of times until you reach a screen asking for name, organization, and serial number. Enter whatever you want for the first two, but the last one needs a specific code. Talk to a team administrator for this.
* Accept the license agreements (don’t forget to read them, or don’t read them, your choice)
* Press next again. The installations should begin. Wait for an even longer time (like, write three five paragraph essays long). Press next again to begin the license manager.
* Finish the installation and restart your computer (again).
* Open up DriverStation (there should be a shortcut on your Desktop). Go to the settings tab (choose the gear icon on the left), and enter the team number 5066.

DriverStation should now be ready to run.

## Operation

This is pretty self explanatory, but there are a few interesting points.

### Accessing the Camera

Choose the LabView dashboard (see below. Set the camera type to HW, and it should appear. If not, make sure that the camera is plugged in and the robot is turned on. If it still does not show up, make sure you have an active stream running (see example code for using a camera). Finally, there are some useful options for controlling the resolution.

### Accessing RoboRIO Features

Choose the awkward meter looking icon on the left (currently the second one down). Some technical information is found here, along with the ability to restart the RoboRIO or the robot code.

### Accessing the SmartDashboard

Go to the gear icon on the left. In the **Dashboard Type** dropdown, choose the dashboard type (duh!).

### Checking the Joysticks

Choose the USB icon on the left. You can now see which buttons are being pressed and the values of the joysticks. Additionally, you can access the rumble feature on certain controllers (such as the Xbox)

### Checking the State of the RoboRIO

On the driving panel, you should see several green or red indicators.

* The communications light indicates whether data is being sent between the robot and the computer
* The robot code light shows if the FRCUserProgram.jar is currently running. The code (usually) is still present on the robot if the light is red, but just not running.
* The joysticks light just indicates whether a usable controller is plugged in

There are also indicators showing battery voltage and console logs.

### Driving the Robot

Click on the driving wheel icon to the left if it is not already highlighted. Before you enable the robot, use the dropdown menu to choose the correct mode (this is especially important if you are implementing [Recordable Auton]. Click **Enable** to enable; click **Disable** to disable. Pressing the space bar will disable the robot, requiring a hard reset (of the robot, not the computer) to re-enable it.

### Writing to the dashboard

Write just like you would to the SmartDashboard, but send everything to the strings

```
DB/String #

```

where *#* should be replaced by a digit. Likewise, you can send things to sliders (doubles) and buttons (booleans) by replacing *String* with *Slider* and *Button*, respectively.