20 #ifndef INCLUDED_HACKRF_SINK_C_H 21 #define INCLUDED_HACKRF_SINK_C_H 23 #include <gnuradio/thread/thread.h> 24 #include <gnuradio/sync_block.h> 26 #include <boost/thread/mutex.hpp> 27 #include <boost/thread/condition_variable.hpp> 29 #include <libhackrf/hackrf.h> 57 typedef boost::shared_ptr<hackrf_sink_c> hackrf_sink_c_sptr;
69 public gr::sync_block,
85 int work(
int noutput_items,
86 gr_vector_const_void_star &input_items,
87 gr_vector_void_star &output_items );
89 static std::vector< std::string > get_devices();
91 size_t get_num_channels(
void );
94 double set_sample_rate(
double rate );
95 double get_sample_rate(
void );
98 double set_center_freq(
double freq,
size_t chan = 0 );
99 double get_center_freq(
size_t chan = 0 );
100 double set_freq_corr(
double ppm,
size_t chan = 0 );
101 double get_freq_corr(
size_t chan = 0 );
103 std::vector<std::string> get_gain_names(
size_t chan = 0 );
106 bool set_gain_mode(
bool automatic,
size_t chan = 0 );
107 bool get_gain_mode(
size_t chan = 0 );
108 double set_gain(
double gain,
size_t chan = 0 );
109 double set_gain(
double gain,
const std::string & name,
size_t chan = 0 );
110 double get_gain(
size_t chan = 0 );
111 double get_gain(
const std::string & name,
size_t chan = 0 );
113 double set_if_gain(
double gain,
size_t chan = 0 );
114 double set_bb_gain(
double gain,
size_t chan = 0 );
116 std::vector< std::string > get_antennas(
size_t chan = 0 );
117 std::string set_antenna(
const std::string & antenna,
size_t chan = 0 );
118 std::string get_antenna(
size_t chan = 0 );
120 double set_bandwidth(
double bandwidth,
size_t chan = 0 );
121 double get_bandwidth(
size_t chan = 0 );
125 static int _hackrf_tx_callback(hackrf_transfer* transfer);
126 int hackrf_tx_callback(
unsigned char *
buffer, uint32_t length);
131 static boost::mutex _usage_mutex;
138 unsigned int _buf_num;
139 unsigned int _buf_used;
140 boost::mutex _buf_mutex;
141 boost::condition_variable _buf_cond;
size_t capacity
Definition: hackrf_sink_c.h:39
Definition: hackrf_sink_c.h:35
void * buffer_end
Definition: hackrf_sink_c.h:38
void * buffer
Definition: hackrf_sink_c.h:37
Definition: sink_iface.h:31
size_t count
Definition: hackrf_sink_c.h:40
struct circular_buffer circular_buffer_t
void * tail
Definition: hackrf_sink_c.h:43
size_t sz
Definition: hackrf_sink_c.h:41
hackrf_sink_c_sptr make_hackrf_sink_c(const std::string &args="")
Return a shared_ptr to a new instance of hackrf_sink_c.
void * head
Definition: hackrf_sink_c.h:42
Definition: hackrf_sink_c.h:68