diff options
author | Dimitri Stolnikov <horiz0n@gmx.net> | 2013-07-26 21:46:47 +0200 |
---|---|---|
committer | Dimitri Stolnikov <horiz0n@gmx.net> | 2013-07-26 21:46:47 +0200 |
commit | 93ad959d8d84dab93336819ed38c6133c83201ae (patch) | |
tree | 018fb64f09b86f0bf8b65f988f83a75c9f96a9e5 /lib/bladerf/bladerf_sink_c.cc | |
parent | b196ee12c098a6cc069c48bc7b9cb720fa3caf6a (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.cc | 16 |
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 ); } |