21 #ifndef INCLUDED_HACKRF_SINK_C_H 22 #define INCLUDED_HACKRF_SINK_C_H 24 #include <gnuradio/sync_block.h> 26 #include <condition_variable> 29 #include <libhackrf/hackrf.h> 58 typedef boost::shared_ptr<hackrf_sink_c> hackrf_sink_c_sptr;
70 public gr::sync_block,
87 int work(
int noutput_items,
88 gr_vector_const_void_star &input_items,
89 gr_vector_void_star &output_items );
91 static std::vector< std::string > get_devices();
93 size_t get_num_channels(
void );
96 double set_sample_rate(
double rate );
97 double get_sample_rate(
void );
100 double set_center_freq(
double freq,
size_t chan = 0 );
101 double get_center_freq(
size_t chan = 0 );
102 double set_freq_corr(
double ppm,
size_t chan = 0 );
103 double get_freq_corr(
size_t chan = 0 );
105 std::vector<std::string> get_gain_names(
size_t chan = 0 );
108 bool set_gain_mode(
bool automatic,
size_t chan = 0 );
109 bool get_gain_mode(
size_t chan = 0 );
110 double set_gain(
double gain,
size_t chan = 0 );
111 double set_gain(
double gain,
const std::string & name,
size_t chan = 0 );
112 double get_gain(
size_t chan = 0 );
113 double get_gain(
const std::string & name,
size_t chan = 0 );
115 double set_if_gain(
double gain,
size_t chan = 0 );
116 double set_bb_gain(
double gain,
size_t chan = 0 );
118 std::vector< std::string > get_antennas(
size_t chan = 0 );
119 std::string set_antenna(
const std::string & antenna,
size_t chan = 0 );
120 std::string get_antenna(
size_t chan = 0 );
122 double set_bandwidth(
double bandwidth,
size_t chan = 0 );
123 double get_bandwidth(
size_t chan = 0 );
127 static int _hackrf_tx_callback(hackrf_transfer* transfer);
128 int hackrf_tx_callback(
unsigned char *
buffer, uint32_t length);
132 unsigned int _buf_num;
133 unsigned int _buf_used;
135 std::mutex _buf_mutex;
136 std::condition_variable _buf_cond;
size_t capacity
Definition: hackrf_sink_c.h:40
Definition: hackrf_sink_c.h:36
void * buffer_end
Definition: hackrf_sink_c.h:39
void * buffer
Definition: hackrf_sink_c.h:38
Definition: sink_iface.h:32
size_t count
Definition: hackrf_sink_c.h:41
struct circular_buffer circular_buffer_t
void * tail
Definition: hackrf_sink_c.h:44
size_t sz
Definition: hackrf_sink_c.h:42
hackrf_sink_c_sptr make_hackrf_sink_c(const std::string &args="")
Return a shared_ptr to a new instance of hackrf_sink_c.
Definition: hackrf_common.h:54
void * head
Definition: hackrf_sink_c.h:43
Definition: hackrf_sink_c.h:69