Re: Iyonix USB: Bulk IN endpoints
- From: davehigton@xxxxxxxxxxxxx
- Date: 1 Sep 2006 00:59:17 -0700
Peter van der Vos wrote:
Dave Higton wrote:
I have a feeling that the bulk mode parts of the stack were written
and tested assuming a model like a mass storage device, where every
response from the device has been requested just before, and is of
an expected length. This model is not valid for USB MIDI, for
example, where all the incoming data (if indeed there are any!) are
not requested in advance, and may be of any packet size in a wide
range. I don't see either of the RISC OS stacks being able to cope
well with this sort of data on a bulk endpoint.
I need to be able to initiate a request for a non-blocking input
transfer, subsequently get the data, then loop round again. Of
course I need to be doing other things until the data arrive. If
they ever do.
On the Iyonix stack, the only way I have found to do it is with
OS_GBPB 4, having opened the pipe with short timeouts. However,
I'm not sure this is working without confusing the device.
I looked at the documentation of the Simtec stack again today, and
it appears that it's possible to initiate an input with a timeout
(in centiseconds). I haven't tried it yet, though.
I'm in the worst possible situation: I'm writing the embedded device's
code too, so I don't know which of them isn't working. :-(
Can't you create two endpoints? One with the current status of your
embedded system and the number of bytes waiting to be transmitted from
the other endpoint.
The 'data' endpoint should send bytes of a fixed lenght and pad the
unused bytes.
I'm working with a defined protocol: USB MIDI. I can't change the way
it works. I am trying to create a standards-conformant device.
Dave
.
- Prev by Date: Re: Iyonix USB: Bulk IN endpoints
- Next by Date: Re: Iyonix USB: Bulk IN endpoints
- Previous by thread: Re: Iyonix USB: Bulk IN endpoints
- Next by thread: Task window within a Wimp Program
- Index(es):
Relevant Pages
|