Commit graph

28 commits

Author SHA1 Message Date
Josh Blum
caff65d7e1 usrp1: fix for tx under remainder conditions
The remainder was accidentally lost because the offset to the buffer
was not propagated outside of the commit function.
2011-04-27 19:12:53 -07:00
Josh Blum
09149bbf7d usrp1: safe destruction for usrp1 device 2011-03-10 14:37:34 -08:00
Josh Blum
2af3e5c49d uhd: tweaks for windows msvc compiler warnings and errors 2011-02-16 17:19:54 -08:00
Josh Blum
3993c827f6 usrp-e100: use pre-bound get send/recv buffers in io impl 2011-02-03 22:14:55 +00:00
Josh Blum
3a85798972 usrp1: removed binds and sptr allocs in usrp1 io impl
prebind the callbacks for getting buffers in io_impl class

reimplement the special send buffer commit hack to avoid allocating
2011-02-14 13:30:47 -08:00
Josh Blum
fb7e8a09a5 uhd: replaced std::vector<type> for buffer arguments in send/recv
Created new type ref_vector for representing a vector of pointers.
Can be created from std::vector or a pointer.

Removes the convenience constrcutors for send/recv, its not needed.

Removes malloc/free overhead when using send/recv with pointer.
2011-02-09 19:01:28 -08:00
Josh Blum
ef351624ee uhd: replace asio buffer in make safe w/ memory and length, makes things simpler 2011-02-07 12:32:12 -08:00
Josh Blum
231f718134 usrp1: fix for tx disable on EOB
Leave the tx digital always enabled, flush with zeros is enough to turn it "off".
Fixed the flush routine to send something (when zero) to ensure zeros go out.
2011-02-02 15:47:33 -08:00
Josh Blum
d71344091b usrp1: work on usrp1 hardware compat with the api
today we added shutoff the DAC when not transmitting using EOB as an indicator

added various other features and cleaned up code for soft time control
2011-01-17 15:18:46 -08:00
Josh Blum
261bb80d73 uhd: update copyright dates on host code 2011-01-13 16:22:07 -08:00
Josh Blum
41e774c7c3 usrp1: implement soft time ctrl for send at, recv at 2011-01-13 12:22:03 -08:00
Josh Blum
09e0624698 usrp: removed old includes that didnt need to be there 2011-01-10 17:11:09 -08:00
Josh Blum
5514e67c64 usrp1: ensure that the current buffer was committed before getting a new one 2010-10-07 11:06:37 -07:00
Josh Blum
b40ace72dd usrp1: use the transport frame sizes to calculate the max spp
The max send spp is the frame size minus the alignment padding.
This allows us to copy a remainder into a new buffer and always
commit multiples of the alignment size (512 bytes).

Reworked the managed send buffer implementation to handle the above.
Uses only managed memory, and only mem-copied under the alignment.
2010-10-06 18:41:30 -07:00
Josh Blum
7352c95037 uhd: reworked the zero copy interface
- recv buffers have a release call
- safe make function for recv buffers (buff + release callback)
- send buffer commits now have a void return
- safe make function for send buffers (buff + commit callback)

The reason for the void return from commit is that ssize_t num_bytes was never returning anything of use.
That is for all of the zero copy implementations so far, commit cannot really error (being asynchronous).

libusb zero copy impl was reworked to support the new interface.
USRP1 io_impl with the psuedo managed buffer was replaced with safe_make.
Also, usrp1 io_impl was simplified greatly due to commit returning void now.
UDP zero copy asio was disabled (in this commit, until its reworked).
Phony send and recv interfaces were removed completely.
2010-10-02 23:15:46 -07:00
Josh Blum
00cd601840 uhd: implemented a double timeout (in seconds) for send and recv chains
converted all size_t timeout_ms to double timeout

bounded and alignment buffer now take double timeout

added timeout to device::send and zero_copy_if::get_send_buff
2010-10-01 18:22:41 -07:00
Josh Blum
2c8a7c7deb uhd: implemented recv timeout for zero copy interface 2010-09-30 14:36:24 -07:00
Josh Blum
42576f1ed9 usrp1: removed msvc warnings for usrp1 impl code 2010-09-23 18:46:58 -07:00
Josh Blum
c36b8a83b1 usrp1: multi-channel tx working, modified vrt handler to interleave 2010-09-23 12:37:11 -07:00
Josh Blum
7ee585f2b9 usrp1: multi-channel rx working, modified vrt handler to deinterleave 2010-09-22 19:14:57 -07:00
Josh Blum
000578892e usrp1: reworked the io_impl for usrp1 to use the vrt packet handler
used dummy packers and unpackets that have a header size of zero

created wrapper around the data transport to handle non-512 multiple sends

honor the eob flag on send to flush the send buffer
2010-09-22 17:36:18 -07:00
Josh Blum
c9cd9b6058 usrp1: flush for flow error messages 2010-08-31 12:19:17 -07:00
Thomas Tsou
7d7479ad05 usrp1: Don't flush the stream buffer after every overrun/underrun 2010-08-27 22:55:18 -07:00
Thomas Tsou
df6e526275 usrp1: Remove unused overrun/underrun poll variable
The polling inverval for overrun and underrun checking is
rate dependent and calculated in the dsp code whenever
the interpolation or decimation is changed.
2010-08-24 16:06:11 -07:00
Thomas Tsou
9449d05773 usrp1: Cleanup unnecessary state variables 2010-08-24 16:05:55 -07:00
Thomas Tsou
4021779856 usrp1: Refactor I/O implementation 2010-08-23 15:18:01 -07:00
Thomas Tsou
dafbb2c047 usrp1: Make underrun/overrun checking rate dependent
Calculate a polling interval based on the sample rate and size.
2010-08-19 18:42:00 -07:00
Thomas Tsou
9cb9e7d522 usrp1: Add usrp1 implementation 2010-08-13 17:54:51 -07:00