8#ifndef INCLUDED_M2K_ANALOG_IN_SOURCE_IMPL_H
9#define INCLUDED_M2K_ANALOG_IN_SOURCE_IMPL_H
13#include <libm2k/analog/m2kanalogin.hpp>
17#include <condition_variable>
22 static std::map<std::string, libm2k::context::M2k *>
s_contexts;
28 libm2k::analog::M2kAnalogIn *d_analog_in;
29 const std::string d_uri;
30 std::vector<int> d_channels;
32 unsigned int d_timeout;
35 unsigned int d_buffer_size;
36 unsigned int d_sample_index;
37 unsigned long d_items_in_buffer;
38 const short *d_raw_samples;
39 bool d_stream_voltage_values;
45 std::condition_variable d_cond_wait;
46 std::thread d_refill_thread;
47 volatile bool d_empty_buffer{}, d_thread_stopped{};
52 const std::vector<int> &channels,
53 std::vector<int> ranges,
54 double sampling_frequency,
55 int oversampling_ratio,
58 bool stream_voltage_values,
59 std::vector<int> trigger_condition,
60 std::vector<int> trigger_mode,
63 std::vector<double> trigger_level,
72 int work(
int noutput_items,
73 gr_vector_const_void_star &input_items,
74 gr_vector_void_star &output_items)
override;
80 double sampling_frequency,
81 int oversampling_ratio)
override;
84 std::vector<int> trigger_mode,
87 std::vector<double> trigger_level,
88 bool streaming)
override;
94 static libm2k::context::M2k *
get_context(
const std::string &uri);
static void remove_contexts(const std::string &uri)
int work(int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items) override
void set_data_rate(double rate) override
static void add_context(libm2k::context::M2k *context)
void set_buffer_size(int buffer_size) override
void set_timeout_ms(unsigned int timeout) override
static libm2k::context::M2k * get_context(const std::string &uri)
analog_in_source_impl(libm2k::context::M2k *context, int buffer_size, const std::vector< int > &channels, std::vector< int > ranges, double sampling_frequency, int oversampling_ratio, int kernel_buffers, bool calibrate_ADC, bool stream_voltage_values, std::vector< int > trigger_condition, std::vector< int > trigger_mode, int trigger_source, int trigger_delay, std::vector< double > trigger_level, bool streaming, bool deinit, double data_rate)
void set_params(std::vector< int > ranges, double sampling_frequency, int oversampling_ratio) override
void set_trigger(std::vector< int > trigger_condition, std::vector< int > trigger_mode, int trigger_source, int trigger_delay, std::vector< double > trigger_level, bool streaming) override
~analog_in_source_impl() override
Source for ADALM2000 with buffered output channels.
Definition analog_in_source.h:26
Definition adf4350_sink.h:15
static std::mutex s_ctx_mutex
Definition analog_in_source_impl.h:23
static std::map< std::string, libm2k::context::M2k * > s_contexts
Definition analog_in_source_impl.h:22
Definition adf4350_sink.h:14