23 #ifndef INCLUDED_SOAPY_SOURCE_IMPL_H 24 #define INCLUDED_SOAPY_SOURCE_IMPL_H 27 #include <boost/bind.hpp> 28 #include <boost/thread/mutex.hpp> 30 #include <SoapySDR/Version.hpp> 31 #include <SoapySDR/Modules.hpp> 32 #include <SoapySDR/Registry.hpp> 33 #include <SoapySDR/Device.hpp> 46 const std::string d_dev_str;
47 const std::string d_args;
49 SoapySDR::Device *d_device;
50 SoapySDR::Stream *d_stream;
55 std::map<pmt::pmt_t, cmd_handler_t> d_cmd_handlers;
56 std::vector<SoapySDR::Kwargs> d_tune_args;
58 void register_msg_cmd_handler(
const pmt::pmt_t &cmd,
cmd_handler_t handler);
60 inline io_signature::sptr
61 args_to_io_sig(
const std::string type,
size_t nchan)
67 else if (type ==
"sc16") {
70 else if (type ==
"sc8") {
73 else if (type ==
"s16") {
76 else if (type ==
"s8") {
79 return io_signature::make(nchan, nchan, size);
83 source_impl(
size_t nchan,
const std::string &device,
84 const std::string &dev_args,
85 const std::string &stream_args,
86 const std::vector<std::string> &tune_args,
87 const std::vector<std::string> &other_settings,
89 const std::string &type);
96 int work(
int noutput_items,
97 gr_vector_const_void_star &input_items,
98 gr_vector_void_star &output_items);
121 void set_frequency(
size_t channel,
const std::string &name,
double frequency);
130 void set_gain(
size_t channel,
float gain);
138 void set_gain(
size_t channel,
const std::string name,
float gain);
156 void set_agc(
size_t channel,
bool enable);
177 void set_antenna(
size_t channel,
const std::string &name);
void set_sample_rate(size_t channel, double sample_rate)
double get_sampling_rate(size_t channel)
void msg_handler_command(pmt::pmt_t msg)
void set_frequency_correction(size_t channel, double freq_correction)
void cmd_handler_bw(pmt::pmt_t val, size_t chann)
bool get_dc_offset_mode(size_t channel)
void cmd_handler_frequency(pmt::pmt_t val, size_t chann)
void set_dc_removal(size_t channel, bool automatic)
source_impl(size_t nchan, const std::string &device, const std::string &dev_args, const std::string &stream_args, const std::vector< std::string > &tune_args, const std::vector< std::string > &other_settings, double sampling_rate, const std::string &type)
void set_frequency(size_t channel, double frequency)
void cmd_handler_samp_rate(pmt::pmt_t val, size_t chann)
double get_frequency_correction(size_t channel)
std::string get_clock_source()
void cmd_handler_gain(pmt::pmt_t val, size_t chann)
void set_bandwidth(size_t channel, double bandwidth)
bool get_gain_mode(size_t channel)
Source block implementation for SDR devices.
Definition: source_impl.h:44
double get_gain(size_t channel)
void set_frontend_mapping(const std::string &frontend_mapping)
bool gain_available(size_t channel, const std::string &name)
void set_antenna(size_t channel, const std::string &name)
void set_agc(size_t channel, bool enable)
void set_gain(size_t channel, float gain)
std::complex< double > get_iq_balance(size_t channel)
std::vector< std::string > get_antennas(int channel)
double get_master_clock_rate()
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)
std::string get_antenna(size_t channel)
void set_iq_balance(size_t channel, gr_complexd iq_balance)
boost::function< void(pmt::pmt_t, size_t)> cmd_handler_t
Definition: sink_impl.h:34
double get_frequency(size_t channel)
void cmd_handler_antenna(pmt::pmt_t val, size_t chann)
void set_dc_offset(size_t channel, gr_complexd dc_offset)
void set_clock_source(const std::string &clock_source)
boost::function< void(pmt::pmt_t, size_t)> cmd_handler_t
Definition: source_impl.h:35
void set_master_clock_rate(double clock_rate)
std::complex< double > get_dc_offset(size_t channel)
double get_bandwidth(size_t channel)