Friends -

As a die-hard old-school unix programmer, I want to be able to grab data
from a USRP-like device, under control of a main loop based on
select(2).  The comments in the source code of fusb are not encouraging.
Quoting from gnuradio-3.0/usrp/host/lib/fusb_linux.cc:

// Totally evil and fragile extraction of file descriptor from
// guts of libusb.  They don't install usbi.h, which is what we'd need
// to do this nicely.
//
// FIXME if everything breaks someday in the future, look here...

static int
fd_from_usb_dev_handle (usb_dev_handle *udh)
{
  return *((int *) udh);
}

.. and of course this function is not exported via the public class
interface.  Worse, what I want is to know when I can read from an
endpoint, not the raw device.  And when I go to read from an endpoint
marked as having something, it still doesn't have a nonblocking read,
that will return as many bytes as are available.

I don't think my desires are unreasonable.  Has anyone else tried
to multitask[*] with USB I/O?  I'll hack up fusb if I have to.

    - Larry

[*] Not counting threads.  Quoting Alan Cox: "Computers are state
machines.  Threads are for people who can't program state machines."


_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to