20 #ifndef INCLUDED_HACKRF_COMMON_H
21 #define INCLUDED_HACKRF_COMMON_H
29 #include <boost/format.hpp>
32 #include <libhackrf/hackrf.h>
34 #define BUF_LEN (16 * 32 * 512)
37 #define BYTES_PER_SAMPLE 2
39 #define HACKRF_FORMAT_ERROR(ret, msg) \
40 boost::str( boost::format(msg " (%1%) %2%") \
41 % ret % hackrf_error_name((enum hackrf_error)ret) )
43 #define HACKRF_THROW_ON_ERROR(ret, msg) \
44 if ( ret != HACKRF_SUCCESS ) \
46 throw std::runtime_error( HACKRF_FORMAT_ERROR(ret, msg) ); \
49 #define HACKRF_FUNC_STR(func, arg) \
50 boost::str(boost::format(func "(%1%)") % arg) + " has failed"
52 typedef std::shared_ptr<hackrf_device> hackrf_sptr;
74 double set_gain(
double gain,
size_t chan = 0 );
78 std::string
set_antenna(
const std::string & antenna,
size_t chan = 0 );
94 static void close(
void *dev);
97 static std::mutex _usage_mutex;
99 static std::map<std::string, std::weak_ptr<hackrf_device>> _devs;
100 static std::mutex _devs_mutex;
107 double _requested_bandwidth;
Definition: hackrf_common.h:55
hackrf_common(const std::string &args)
std::string set_antenna(const std::string &antenna, size_t chan=0)
std::vector< std::string > get_antennas(size_t chan=0)
double set_sample_rate(double rate)
double get_center_freq(size_t chan=0)
osmosdr::meta_range_t get_sample_rates(void)
double get_freq_corr(size_t chan=0)
double get_bandwidth(size_t chan=0)
double set_freq_corr(double ppm, size_t chan=0)
double set_bandwidth(double bandwidth, size_t chan=0)
double set_center_freq(double freq, size_t chan=0)
std::string get_antenna(size_t chan=0)
static std::vector< std::string > get_devices()
bool set_gain_mode(bool automatic, size_t chan=0)
double get_gain(size_t chan=0)
double get_sample_rate(void)
bool get_gain_mode(size_t chan=0)
double set_gain(double gain, size_t chan=0)
hackrf_sptr _dev
Definition: hackrf_common.h:91
osmosdr::freq_range_t get_freq_range(size_t chan=0)
osmosdr::freq_range_t get_bandwidth_range(size_t chan=0)