split analog.c out intelligently and added an id to the sensor packet
diff --git a/gyro_board/src/usb/digital.c b/gyro_board/src/usb/digital.c
new file mode 100644
index 0000000..aed2d71
--- /dev/null
+++ b/gyro_board/src/usb/digital.c
@@ -0,0 +1,49 @@
+#include "digital.h"
+
+#include "FreeRTOS.h"
+
+inline int readGPIO_inline(int major, int minor) {
+  switch (major) {
+    case 0:
+      return readGPIO(GPIO0, minor);
+    case 1:
+      return readGPIO(GPIO1, minor);
+    case 2:
+      return readGPIO(GPIO2, minor);
+    default:
+      return -1;
+  }
+}
+
+int digital(int channel) {
+  if (channel < 1) {
+    return -1;
+  } else if (channel < 7) {
+    int chan = channel + 3;
+    return readGPIO(GPIO0, chan);
+  } else if (channel < 13) {
+    int chan = channel - 7;
+    return readGPIO(GPIO2, chan);
+  }
+  return -1;
+}
+
+int dip_switch(int channel) {
+  switch (channel) {
+    case 0:
+      return readGPIO(GPIO1, 29);
+    case 1:
+      return readGPIO(GPIO2, 13);
+    case 2:
+      return readGPIO(GPIO0, 11);
+    case 3:
+      return readGPIO(GPIO0, 10);
+    default:
+      return -1;
+  }
+}
+
+int is_bot3;
+void digital_init(void) {
+  is_bot3 = 0;
+}