summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Gilling <konkers@android.com>2011-05-06 08:58:20 -0700
committerErik Gilling <konkers@android.com>2011-05-06 08:58:20 -0700
commit1cc19a7049e14898425e9f1cd53153d268094706 (patch)
treeed4a83303188535a4bd080f718ceddf8a433bb5f
parent37b17198802492c640f4a2266b021af08c1257f0 (diff)
downloadarduino-1cc19a7049e14898425e9f1cd53153d268094706.tar.gz
Change-Id: I80cae98df4705bf7de97551613189e443a5a5ceb Signed-off-by: Erik Gilling <konkers@android.com>
-rw-r--r--AndroidAccessory/AndroidAccessory.cpp49
-rw-r--r--AndroidAccessory/AndroidAccessory.h1
2 files changed, 29 insertions, 21 deletions
diff --git a/AndroidAccessory/AndroidAccessory.cpp b/AndroidAccessory/AndroidAccessory.cpp
index a864b90..59a6739 100644
--- a/AndroidAccessory/AndroidAccessory.cpp
+++ b/AndroidAccessory/AndroidAccessory.cpp
@@ -19,20 +19,20 @@
#include <Usb.h>
#include <AndroidAccessory.h>
-#define USB_ACCESSORY_VENDOR_ID 0x18D1
-#define USB_ACCESSORY_PRODUCT_ID 0x2D00
+#define USB_ACCESSORY_VENDOR_ID 0x18D1
+#define USB_ACCESSORY_PRODUCT_ID 0x2D00
-#define USB_ACCESSORY_ADB_PRODUCT_ID 0x2D01
-#define ACCESSORY_STRING_MANUFACTURER 0
-#define ACCESSORY_STRING_MODEL 1
-#define ACCESSORY_STRING_DESCRIPTION 2
-#define ACCESSORY_STRING_VERSION 3
-#define ACCESSORY_STRING_URI 4
-#define ACCESSORY_STRING_SERIAL 5
+#define USB_ACCESSORY_ADB_PRODUCT_ID 0x2D01
+#define ACCESSORY_STRING_MANUFACTURER 0
+#define ACCESSORY_STRING_MODEL 1
+#define ACCESSORY_STRING_DESCRIPTION 2
+#define ACCESSORY_STRING_VERSION 3
+#define ACCESSORY_STRING_URI 4
+#define ACCESSORY_STRING_SERIAL 5
-#define ACCESSORY_GET_PROTOCOL 51
-#define ACCESSORY_SEND_STRING 52
-#define ACCESSORY_START 53
+#define ACCESSORY_GET_PROTOCOL 51
+#define ACCESSORY_SEND_STRING 52
+#define ACCESSORY_START 53
AndroidAccessory::AndroidAccessory(const char *manufacturer,
@@ -60,15 +60,22 @@ void AndroidAccessory::powerOn(void)
int AndroidAccessory::getProtocol(byte addr)
{
uint16_t protocol = -1;
- usb.ctrlReq(addr, 0, USB_SETUP_DEVICE_TO_HOST | USB_SETUP_TYPE_VENDOR | USB_SETUP_RECIPIENT_DEVICE,
+ usb.ctrlReq(addr, 0,
+ USB_SETUP_DEVICE_TO_HOST |
+ USB_SETUP_TYPE_VENDOR |
+ USB_SETUP_RECIPIENT_DEVICE,
ACCESSORY_GET_PROTOCOL, 0, 0, 0, 2, (char *)&protocol);
return protocol;
}
void AndroidAccessory::sendString(byte addr, int index, const char *str)
{
- usb.ctrlReq(addr, 0, USB_SETUP_HOST_TO_DEVICE | USB_SETUP_TYPE_VENDOR | USB_SETUP_RECIPIENT_DEVICE,
- ACCESSORY_SEND_STRING, 0, 0, index, strlen(str) + 1, (char *)str);
+ usb.ctrlReq(addr, 0,
+ USB_SETUP_HOST_TO_DEVICE |
+ USB_SETUP_TYPE_VENDOR |
+ USB_SETUP_RECIPIENT_DEVICE,
+ ACCESSORY_SEND_STRING, 0, 0, index,
+ strlen(str) + 1, (char *)str);
}
@@ -90,7 +97,10 @@ bool AndroidAccessory::switchDevice(byte addr)
sendString(addr, ACCESSORY_STRING_URI, uri);
sendString(addr, ACCESSORY_STRING_SERIAL, serial);
- usb.ctrlReq(addr, 0, USB_SETUP_HOST_TO_DEVICE | USB_SETUP_TYPE_VENDOR | USB_SETUP_RECIPIENT_DEVICE,
+ usb.ctrlReq(addr, 0,
+ USB_SETUP_HOST_TO_DEVICE |
+ USB_SETUP_TYPE_VENDOR |
+ USB_SETUP_RECIPIENT_DEVICE,
ACCESSORY_START, 0, 0, 0, 0, NULL);
while (usb.getUsbTaskState() != USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE) {
@@ -101,6 +111,7 @@ bool AndroidAccessory::switchDevice(byte addr)
return true;
}
+// Finds the first bulk IN and bulk OUT endpoints
bool AndroidAccessory::findEndpoints(byte addr, EP_RECORD *inEp, EP_RECORD *outEp)
{
int len;
@@ -195,9 +206,7 @@ bool AndroidAccessory::configureAndroid(void)
in = inEp.epAddr;
out = outEp.epAddr;
- Serial.print("inEp: ");
Serial.println(inEp.epAddr, HEX);
- Serial.print("outEp: ");
Serial.println(outEp.epAddr, HEX);
epRecord[0] = *(usb.getDevTableEntry(0,0));
@@ -226,7 +235,7 @@ bool AndroidAccessory::isConnected(void)
usb.getUsbTaskState() >= USB_STATE_CONFIGURING &&
usb.getUsbTaskState() != USB_STATE_RUNNING) {
Serial.print("\nDevice addressed... ");
- Serial.print("Requesting device descriptor.");
+ Serial.print("Requesting device descriptor.\n");
err = usb.getDevDescr(1, 0, 0x12, (char *) devDesc);
if (err) {
@@ -244,7 +253,7 @@ bool AndroidAccessory::isConnected(void)
}
} else if (usb.getUsbTaskState() == USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE) {
if (connected)
- Serial.println("disconnect");
+ Serial.println("disconnect\n");
connected = false;
}
diff --git a/AndroidAccessory/AndroidAccessory.h b/AndroidAccessory/AndroidAccessory.h
index 1d4542d..6610307 100644
--- a/AndroidAccessory/AndroidAccessory.h
+++ b/AndroidAccessory/AndroidAccessory.h
@@ -65,5 +65,4 @@ public:
int write(void *buff, int len);
};
-
#endif /* __AndroidAccessory_h__ */