copied everything over from 2012 and removed all of the actual robot code except the drivetrain stuff


git-svn-id: https://robotics.mvla.net/svn/frc971/2013/trunk/src@4078 f308d9b7-e957-4cde-b6ac-9a88185e7312
diff --git a/aos/atom_code/input/FRCComm.h b/aos/atom_code/input/FRCComm.h
new file mode 100644
index 0000000..3d2f4c0
--- /dev/null
+++ b/aos/atom_code/input/FRCComm.h
@@ -0,0 +1,115 @@
+/*************************************************************
+ * 					NOTICE
+ * 
+ * 	These are the only externally exposed functions to the
+ *   NetworkCommunication library
+ * 
+ * This is an implementation of FRC Spec for Comm Protocol
+ * Revision 4.5, June 30, 2008
+ *
+ * Copyright (c) National Instruments 2008.  All Rights Reserved.
+ * 
+ *************************************************************/
+
+#ifndef __FRC_COMM_H__
+#define __FRC_COMM_H__
+
+#include <stdint.h>
+
+typedef uint64_t UINT64;
+typedef uint32_t UINT32;
+typedef uint16_t UINT16;
+typedef uint8_t  UINT8;
+typedef int8_t  INT8;
+
+struct FRCCommonControlData{
+	UINT16 packetIndex;
+	union {
+		UINT8 control;
+		struct {
+			/*the order of these are flipped on the fit pc side to make it work*/
+			UINT8 fpgaChkSum :1;
+			UINT8 cRIOChkSum :1;
+			UINT8 resync : 1;
+			UINT8 fmsAttached:1;
+			UINT8 autonomous : 1;
+			UINT8 enabled : 1;
+			UINT8 notEStop : 1;
+			UINT8 reset : 1;
+		};
+	};
+	UINT8 dsDigitalIn;
+	UINT16 teamID;
+
+	char dsID_Alliance;
+	char dsID_Position;
+
+	union {
+		INT8 stick0Axes[6];
+		struct {
+			INT8 stick0Axis1;
+			INT8 stick0Axis2;
+			INT8 stick0Axis3;
+			INT8 stick0Axis4;
+			INT8 stick0Axis5;
+			INT8 stick0Axis6;
+		};
+	};
+	UINT16 stick0Buttons;		// Left-most 4 bits are unused
+
+	union {
+		INT8 stick1Axes[6];
+		struct {
+			INT8 stick1Axis1;
+			INT8 stick1Axis2;
+			INT8 stick1Axis3;
+			INT8 stick1Axis4;
+			INT8 stick1Axis5;
+			INT8 stick1Axis6;
+		};
+	};
+	UINT16 stick1Buttons;		// Left-most 4 bits are unused
+
+	union {
+		INT8 stick2Axes[6];
+		struct {
+			INT8 stick2Axis1;
+			INT8 stick2Axis2;
+			INT8 stick2Axis3;
+			INT8 stick2Axis4;
+			INT8 stick2Axis5;
+			INT8 stick2Axis6;
+		};
+	};
+	UINT16 stick2Buttons;		// Left-most 4 bits are unused
+
+	union {
+		INT8 stick3Axes[6];
+		struct {
+			INT8 stick3Axis1;
+			INT8 stick3Axis2;
+			INT8 stick3Axis3;
+			INT8 stick3Axis4;
+			INT8 stick3Axis5;
+			INT8 stick3Axis6;
+		};
+	};
+	UINT16 stick3Buttons;		// Left-most 4 bits are unused
+
+	//Analog inputs are 10 bit right-justified
+	UINT16 analog1;
+	UINT16 analog2;
+	UINT16 analog3;
+	UINT16 analog4;
+
+	UINT64 cRIOChecksum;
+	UINT32 FPGAChecksum0;
+	UINT32 FPGAChecksum1;
+	UINT32 FPGAChecksum2;
+	UINT32 FPGAChecksum3;
+
+	char versionData[8];
+};
+
+
+#endif