21 #ifndef INCLUDED_BLADERF_COMMON_H
22 #define INCLUDED_BLADERF_COMMON_H
31 #include <libbladeRF.h>
40 typedef ptrdiff_t ssize_t;
43 #define BLADERF_DEBUG_ENABLE
45 typedef 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
int channel2rfport(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)
static std::vector< std::string > devices()
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)
std::vector< std::string > get_gain_names(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)
bladerf_sptr _dev
Definition: bladerf_common.h:246
std::vector< std::string > get_antennas(bladerf_direction dir)
double get_smb_frequency()
std::vector< std::string > get_clock_sources(size_t mboard=0)
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