Пример #1
0
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;
}
Пример #2
0
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;
}