I just wanted to note that a new synchronous interface has been added to libbladeRF. This should be significantly easier to work with than the async interface that many of you now know and love. (Okay, that last bit might be a stretch...but doesn't kill you makes you stronger, right? )
This is implemented atop the async interface, and does all the dirty work of handling and callbacks and performing the neccessary buffer management. As such, the performance should be vastly superior to the old sync calls, which frankly, were unusable. Pthreads is required to build and use this new interface (which everyone probably already has if they're building/using bladeRF-cli.)
Here's a link to some updated doxygen documentation. The section on the sync interface has a simple usage example. The libbladerf_test_sync program provides a slightly more detailed example of usage, and allows for simultaneous transmission & reception of SC16Q11 data from/to files.
Be aware that a few reverse-incompatible changes where made here:
- The old bladerf_tx() and bladerf_rx() have been removed from the API, and have been replaced with bladerf_sync_config(), bladerf_sync_rx(), and bladerf_sync_tx()
- The bladerf_set_transfer_timeout() and bladerf_get_transfer_timeout() functions have been removed and replaced with more appropriately named bladerf_set_stream_timeout() and bladerf_stream_timeout()
If you identify defects or regressions, please poke us on IRC and file a bug report on the issue tracker.
Let's take any troubleshooting with this new interface to the Troubleshooting forum, rather than letting this thread grow too unwieldy.