int main(int argc, char** argv)
{
  
  if (openUSBDevice() < 0) return -1;
  printf("openUSBDevice complete...\n"); 
 
  if (allocateTransfers() < 0) return -1;
  printf("allocateTransfers() complete...\n");

  submitTransfers();
  printf("submitTransfers() complete..\n");
  
  waitForCompletion();

  deallocateUSBDevice();

  return 0;
}
Ejemplo n.º 2
0
int main(int argc, char *argv[])
{
	struct Kicker_t kicker;

	int ret;
	//usb_set_debug(2);

	if ( argc != 3 )
	{
		printf("Usage: %s <KickerNumber> <Duration>\n",argv[0]);
		printf("            0xF000         0xF000    -> Master OFF  (default)\n");
		printf("            0xFFFF	   0xFFFF    -> Master ON\n");
		return(3);
	}
	kicker.Select = atoi(argv[1]);
	kicker.Time = atoi(argv[2]);


	printf("SEL %i   %i" ,kicker.Select ,kicker.Time);
	openUSBDevice();

	ret=usb_interrupt_write(current_handle,out_ep,(char *) &kicker,sizeof(struct Kicker_t),10);

	if (ret != sizeof(struct Kicker_t))
	{
		printf("usb_interrupt_write returned %d instead of %d\n",ret,sizeof(struct Kicker_t));
		//usleep(1000);
	} else {
		//printf("%X %X %X %X\n",rxdata[0],rxdata[1],rxdata[2],rxdata[3]);
	}

	

	closeUSBDevice();

	return 0;
}
Ejemplo n.º 3
0
int iterateDevices(io_iterator_t deviceIterator)
{
io_object_t usbDevice;
int err = -1;
IOReturn ret;
IOUSBDeviceInterface245 **dev=NULL;
SInt32 config = 0;
int exclusiveErrs, attempts;


    for(attempts = 1; attempts < 5; attempts++)
    {
        exclusiveErrs = 0;
        usbDevice = IOIteratorNext(deviceIterator);
        if(usbDevice == IO_OBJECT_NULL)
        {
            fprintf(stderr, "Unable to find first matching USB device\n");
            return(-1);
        }
        
        while(usbDevice != IO_OBJECT_NULL)
        {
            dev = getUSBDevice(usbDevice);
            
            if(dev != nil)
            {
                
                config = openUSBDevice(dev);
                if(config == -2)
                {
                    exclusiveErrs++;
                }
                else if(config >= 0)
                {
                    // Device sucessfully opened
                
                    if(config > 0)
                    {
                        useUSBDevice(dev, config);
                    }
                    else
                    {
                        printf("What use is a device with a zero configuration????\n");
                    }
                
                    ret = (*dev)->USBDeviceClose(dev);
                }
        
                ret = (*dev)->Release(dev);
                // Not worth bothering with errors here
            }
            IOObjectRelease(usbDevice);
            
            if(config >= 0)	// we have sucessfully used device 
            {
                return(0);
            }
            usbDevice = IOIteratorNext(deviceIterator);
        };
        if(exclusiveErrs > 0)
        {
	     	sleep(1);
            IOIteratorReset(deviceIterator);
            printf("Trying open again %d\n", attempts);
        }
        else
        {
            break;
        }
    }
    return(err);
}