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 HACKRF_OC_PORT_COUNT 8
38 #define HACKRF_OC_PORTS_PER_SIDE 4
39 #define HACKRF_OC_PORT_INVALID -1
41 #define BYTES_PER_SAMPLE 2
43 #define HACKRF_FORMAT_ERROR(ret, msg) \
44 boost::str( boost::format(msg " (%1%) %2%") \
45 % ret % hackrf_error_name((enum hackrf_error)ret) )
47 #define HACKRF_THROW_ON_ERROR(ret, msg) \
48 if ( ret != HACKRF_SUCCESS ) \
50 throw std::runtime_error( HACKRF_FORMAT_ERROR(ret, msg) ); \
53 #define HACKRF_FUNC_STR(func, arg) \
54 boost::str(boost::format(func "(%1%)") % arg) + " has failed"
56 typedef std::shared_ptr<hackrf_device> hackrf_sptr;
78 double set_gain(
double gain,
size_t chan = 0 );
82 std::string
set_antenna(
const std::string & antenna,
size_t chan = 0 );
98 static void close(
void *dev);
100 #ifdef HACKRF_OPERACAKE_SUPPORT
101 uint8_t get_operacake_address();
102 std::string port2str(
int port);
103 int str2port(std::string
const &str);
107 static std::mutex _usage_mutex;
109 static std::map<std::string, std::weak_ptr<hackrf_device>> _devs;
110 static std::mutex _devs_mutex;
117 double _requested_bandwidth;
Definition: hackrf_common.h:59
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:95
osmosdr::freq_range_t get_freq_range(size_t chan=0)
osmosdr::freq_range_t get_bandwidth_range(size_t chan=0)
#define HACKRF_OC_PORT_INVALID
Definition: hackrf_common.h:39