bool AndroidAccessory::isConnected(void) { USB_DEVICE_DESCRIPTOR *devDesc = (USB_DEVICE_DESCRIPTOR *) descBuff; byte err; refresh(); if (!connected && usb.getUsbTaskState() >= USB_STATE_CONFIGURING && usb.getUsbTaskState() != USB_STATE_RUNNING) { Serial.print(F("\nDevice addressed... ")); Serial.print(F("Requesting device descriptor.\n")); err = usb.getDevDescr(1, 0, 0x12, (char *) devDesc); if (err) { Serial.print(F("\nDevice descriptor cannot be retrieved. Trying again\n")); return false; } if (isAccessoryDevice(devDesc)) { Serial.print(F("found android acessory device\n")); connected = configureAndroid(); } else { Serial.print(F("found possible device. swithcing to serial mode\n")); switchDevice(1); } } else if (usb.getUsbTaskState() == USB_DETACHED_SUBSTATE_WAIT_FOR_DEVICE) { if (connected) Serial.println(F("disconnect\n")); connected = false; } return connected; }
bool AndroidAccessory::connect() { USB_DEVICE_DESCRIPTOR *devDesc = (USB_DEVICE_DESCRIPTOR *) descBuff; byte err = usb.getDevDescr(1, 0, 0x12, (char *) devDesc); if (err) { return false; } if (isAccessoryDevice(devDesc)) { return configureAndroid(); } else { switchDevice(1); } return false; }