hi leon,
to do any transaction on the usb subsystem you have to do two things:
setup an urb using usbd_setup_…()
and usbd_io()
the handle is simply a void pointer which you can use in your callback
function. It’s used to pass e.g. device information to the callback.
e.g.
if(0 == usbd_setup_isochronous(urb, URB_ISOCH_ASAP | URB_DIR_IN, 0, databuffer, pdev->vmax_packet_size))
usbd_io(urb, pipe, isoc_handler, address_of_mydevice_structure, timeout);
…
void isoc_handler(struct usbd_urb *urb, struct usbd_pipe *pipe, void *hdl){ struct my_device pdev = (struct my_device)hdl;
…bla bla
}
the word frame in the context of USB means ‘usb frame’. it has nothing to do with the camera.
the frame number is the starting point (or better trigger) when the usb stack starts transfer.
if you specify URB_ISOCH_ASAP(as soon as possible), the frame number is ignored.
I don’t know how to start streaming on a ov511+, its normaly a control (vendor) command.
“leon mike” <yqdu@etang.com> schrieb im Newsbeitrag news:b5hqka$ok$1@inn.qnx.com…
I am doing the same things as TIA, peter.But there are some confusions int the uddk 1.0beta under RTP6.1 .
for example:
What’s means of the argu ‘handle’ int the function usbd_io(),docs said that ‘user data’,but how to
use? :-<
What’s means of the argu ‘frame’ int the function usbd_setup_isochronous(),etc
And how to sent a vendor command to start the video capturing ?
My device’s chipest is ov511+ and UHCI based usb1.1.
Anyone can explain these questions? I will very appreciate!