http://www.perlmonks.org?node_id=875916

flbiggs has asked for the wisdom of the Perl Monks concerning the following question:

I am trying read and write to/from a USB scanner to extend the functionality of sane a bit. I am able to view the device information and endpoints fairly easily with the following code:

my $usb = Device::USB->new(); my $dev = $usb->find_device( VENDOR, PRODUCT ); print Dumper $dev;

My problem is that I cannot quite figure out how to provide appropriate parameters for the interrupt_read, interrupt_write, bulk_read and bulk_write methods.

For example, the documentation for interrupt_write provides:

interrupt_write - Perform a interrupt write request to the specifi +ed endpoint. ep - The number of the endpoint to write bytes Buffer - Buffer from which to write the requested data. timeout - Maximum time to wait (in milliseconds)

Is 'ep' the full bEndpointAddress or just its lower 3 bits. How do I set up Buffer? Is that an array reference?

Could someone please provide some sample perl code that performs a read or write using Device::USB (or point me to a website)?

Thanks

Replies are listed 'Best First'.
Re: Device::USB Read/Write
by Khen1950fx (Canon) on Dec 08, 2010 at 14:32 UTC
    I think that rocket-test by Michael Schilli is exactly what you're looking for.

      That article is exactly what I was looking for. Thank you very much!