21#ifndef INCLUDED_BLADERF_COMMON_H
22#define INCLUDED_BLADERF_COMMON_H
31#include <libbladeRF.h>
40typedef ptrdiff_t ssize_t;
43#define BLADERF_DEBUG_ENABLE
45typedef std::shared_ptr<struct bladerf> bladerf_sptr;
62#define BLADERF_THROW(message) \
64 throw std::runtime_error(std::string(__FUNCTION__) + ": " + message); \
67#define BLADERF_THROW_STATUS(status, message) \
69 BLADERF_THROW(boost::str(boost::format("%s: %s (%d)") % message \
70 % bladerf_strerror(status) % status)); \
74#define BLADERF_WARNING(message) \
76 std::cerr << _pfx << __FUNCTION__ << ": " << message << std::endl; \
79#define BLADERF_WARN_STATUS(status, message) \
81 BLADERF_WARNING(message << ": " << bladerf_strerror(status)); \
85#define BLADERF_INFO(message) \
87 std::cout << _pfx << __FUNCTION__ << ": " << message << std::endl; \
91#ifdef BLADERF_DEBUG_ENABLE
92#define BLADERF_DEBUG(message) BLADERF_INFO("DEBUG: " << message)
94#define BLADERF_DEBUG(message)
176 bladerf_channel
chan2channel(bladerf_direction direction,
size_t chan = 0);
209 bladerf_gain_mode agc_mode = BLADERF_GAIN_DEFAULT);
216 double set_gain(
double gain, std::string
const &name, bladerf_channel ch);
220 double get_gain(std::string
const &name, bladerf_channel ch);
224 bool set_antenna(bladerf_direction dir,
size_t chan,
const std::string &antenna);
276 bladerf_sptr open(
const std::string &device_name);
278 static void close(
void *dev);
280 static bladerf_sptr get_cached_device(
struct bladerf_devinfo devinfo);
282 void print_device_info();
284 bool is_antenna_valid(bladerf_direction dir,
const std::string &antenna);
289 static std::mutex _devs_mutex;
290 static std::list<std::weak_ptr<struct bladerf> > _devs;
std::map< std::string, std::string > dict_t
Definition arg_helpers.h:34
std::map< bladerf_channel, int > bladerf_channel_map
Definition bladerf_common.h:59
std::map< bladerf_channel, bool > bladerf_channel_enable_map
Definition bladerf_common.h:56
bladerf_board_type
Definition bladerf_common.h:48
@ BOARD_TYPE_UNKNOWN
Definition bladerf_common.h:49
@ BOARD_TYPE_BLADERF_1
Definition bladerf_common.h:51
@ BOARD_TYPE_NONE
Definition bladerf_common.h:50
@ BOARD_TYPE_BLADERF_2
Definition bladerf_common.h:52
size_t num_streams(bladerf_channel_layout layout)
Definition bladerf_common.h:104
std::vector< std::string > get_antennas(bladerf_direction dir)
int channel2rfport(bladerf_channel ch)
std::vector< std::string > get_clock_sources(size_t mboard=0)
std::vector< std::string > get_gain_names(bladerf_channel ch)
size_t _num_transfers
Definition bladerf_common.h:252
double get_gain(bladerf_channel ch)
bladerf_format _format
Definition bladerf_common.h:255
bool get_channel_enable(bladerf_channel ch)
void init(dict_t const &dict, bladerf_direction direction)
double set_sample_rate(double rate, bladerf_channel ch)
double set_center_freq(double freq, bladerf_channel ch)
bool set_gain_mode(bool automatic, bladerf_channel ch, bladerf_gain_mode agc_mode=BLADERF_GAIN_DEFAULT)
osmosdr::meta_range_t sample_rates(bladerf_channel ch)
osmosdr::gain_range_t get_gain_range(bladerf_channel ch)
int set_dc_offset(std::complex< double > const &offset, bladerf_channel ch)
void set_clock_source(std::string const &source, size_t mboard=0)
static const int16_t DCOFF_SCALE
Definition bladerf_common.h:267
bladerf_board_type get_board_type()
static const int16_t GAIN_SCALE
Definition bladerf_common.h:268
double get_bandwidth(bladerf_channel ch)
osmosdr::freq_range_t freq_range(bladerf_channel ch)
bladerf_channel chan2channel(bladerf_direction direction, size_t chan=0)
std::string _pfx
Definition bladerf_common.h:247
unsigned int _stream_timeout
Definition bladerf_common.h:253
size_t get_max_channels(bladerf_direction direction)
static const int16_t PHASE_SCALE
Definition bladerf_common.h:269
bool get_gain_mode(bladerf_channel ch)
void set_verbosity(std::string const &verbosity)
bool set_antenna(bladerf_direction dir, size_t chan, const std::string &antenna)
double set_gain(double gain, std::string const &name, bladerf_channel ch)
bladerf_channel_enable_map _enables
Definition bladerf_common.h:258
osmosdr::freq_range_t filter_bandwidths(bladerf_channel ch)
bladerf_channel str2channel(std::string const &ch)
void set_channel_enable(bladerf_channel ch, bool enable)
unsigned int _failures
Definition bladerf_common.h:248
size_t _num_buffers
Definition bladerf_common.h:250
bladerf_channel_map _chanmap
Definition bladerf_common.h:257
size_t _samples_per_buffer
Definition bladerf_common.h:251
double set_gain(double gain, bladerf_channel ch)
int set_iq_balance(std::complex< double > const &balance, bladerf_channel ch)
static std::vector< std::string > devices()
bladerf_sptr _dev
Definition bladerf_common.h:246
double get_smb_frequency()
osmosdr::gain_range_t get_gain_range(std::string const &name, bladerf_channel ch)
double get_sample_rate(bladerf_channel ch)
double set_bandwidth(double bandwidth, bladerf_channel ch)
std::string get_clock_source(size_t mboard=0)
std::string channel2str(bladerf_channel ch)
double get_center_freq(bladerf_channel ch)
double get_gain(std::string const &name, bladerf_channel ch)
void set_smb_frequency(double frequency)
static const unsigned int MAX_CONSECUTIVE_FAILURES
Definition bladerf_common.h:264