aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bladerf/bladerf_sink_c.cc
diff options
context:
space:
mode:
authorDimitri Stolnikov <horiz0n@gmx.net>2013-07-26 21:46:47 +0200
committerDimitri Stolnikov <horiz0n@gmx.net>2013-07-26 21:46:47 +0200
commit93ad959d8d84dab93336819ed38c6133c83201ae (patch)
tree018fb64f09b86f0bf8b65f988f83a75c9f96a9e5 /lib/bladerf/bladerf_sink_c.cc
parentb196ee12c098a6cc069c48bc7b9cb720fa3caf6a (diff)
bladerf: migrate to new api to enable/disable TX/RX modules
TX support has been verified with osmocom_siggen and fpga image from git f6c6a3abcb22d2794946e5adbc556805a73788a3
Diffstat (limited to 'lib/bladerf/bladerf_sink_c.cc')
-rw-r--r--lib/bladerf/bladerf_sink_c.cc16
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/bladerf/bladerf_sink_c.cc b/lib/bladerf/bladerf_sink_c.cc
index 7958a70..d3953e0 100644
--- a/lib/bladerf/bladerf_sink_c.cc
+++ b/lib/bladerf/bladerf_sink_c.cc
@@ -72,6 +72,7 @@ bladerf_sink_c::bladerf_sink_c (const std::string &args)
gr::io_signature::make (MIN_IN, MAX_IN, sizeof (gr_complex)),
gr::io_signature::make (MIN_OUT, MAX_OUT, sizeof (gr_complex)))
{
+ int ret;
unsigned int device_number = 0;
std::string device_name;
@@ -105,7 +106,7 @@ bladerf_sink_c::bladerf_sink_c (const std::string &args)
std::string fpga = dict["fpga"];
std::cerr << "Loading FPGA bitstream " << fpga << "..." << std::endl;
- int ret = bladerf_load_fpga( this->dev, fpga.c_str() );
+ ret = bladerf_load_fpga( this->dev, fpga.c_str() );
if ( ret != 0 )
std::cerr << "bladerf_load_fpga has returned with " << ret << std::endl;
else
@@ -119,7 +120,7 @@ bladerf_sink_c::bladerf_sink_c (const std::string &args)
std::cerr << "Flashing firmware image " << fw << "..., "
<< "DO NOT INTERRUPT!"
<< std::endl;
- int ret = bladerf_flash_firmware( this->dev, fw.c_str() );
+ ret = bladerf_flash_firmware( this->dev, fw.c_str() );
if ( ret != 0 )
std::cerr << "bladerf_flash_firmware has failed with " << ret << std::endl;
else
@@ -156,7 +157,10 @@ bladerf_sink_c::bladerf_sink_c (const std::string &args)
/* Set the range of VGA2, VGA2GAIN[4:0] */
this->vga2_range = osmosdr::gain_range_t( 0, 25, 1 );
- this->setup_device();
+ ret = bladerf_enable_module(this->dev, TX, true);
+ if ( ret != 0 )
+ std::cerr << "bladerf_enable_module has returned with " << ret << std::endl;
+
this->thread = gr::thread::thread(write_task_dispatch, this);
}
@@ -165,9 +169,15 @@ bladerf_sink_c::bladerf_sink_c (const std::string &args)
*/
bladerf_sink_c::~bladerf_sink_c ()
{
+ int ret;
+
this->set_running(false);
this->thread.join();
+ ret = bladerf_enable_module(this->dev, TX, false);
+ if ( ret != 0 )
+ std::cerr << "bladerf_enable_module has returned with " << ret << std::endl;
+
/* Close the device */
bladerf_close( this->dev );
}