This leads again to my question some time ago about how the USB data stream
is organized. With the partial answer from that thread my understanding
boils down to the following:
Our questions are on completely different waveforms :P I'm talking
about way before the FX2.
However the last postulate gives me some headache. How do we make sure that
the user process always fetches 512 byte blocks.
The user application does not worry about this, the lower level
interface that Eric has written to the USRP worries about this. If you
take a look at some of the code in usrp/host/lib/legacy, it is ensuring
that all reads are 512 bytes else it will print an error and return -1,
not performing the read.
Can a crashing user process manage to read less then 512 bytes?
Of course, but when the process is restarted the buffers reset in the
USRP and FX2.
What if a rogue process reads less then 512 bytes.
The low level USRP USB drivers will fail the read.
If the user process gets out of sync with the 512 bytes for some
reason, is there any way to resynchronize?
The user process can "miss" 512-bytes if it's not reading the data fast
enough and the buffers become full... this is an overrun. The error
will be reported to the host and the host has to live with it and move
on with life.
- George
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio