diff --git a/src/dmm.cpp b/src/dmm.cpp index 26b4c90942..f892ea573b 100644 --- a/src/dmm.cpp +++ b/src/dmm.cpp @@ -517,6 +517,7 @@ void DMM::toggleTimer(bool start) { enableDataLogging(start); if (start) { + manager->set_kernel_buffer_count(4); writeAllSettingsToHardware(); manager->start(id_ch1); manager->start(id_ch2); @@ -529,6 +530,7 @@ void DMM::toggleTimer(bool start) manager->stop(id_ch1); manager->stop(id_ch2); + manager->set_kernel_buffer_count(); } setDynamicProperty(ui->run_button, "running", start); diff --git a/src/iio_manager.cpp b/src/iio_manager.cpp index 5deb6ea7d9..b44ff13ede 100644 --- a/src/iio_manager.cpp +++ b/src/iio_manager.cpp @@ -365,6 +365,14 @@ void iio_manager::set_data_rate(double rate) { iio_block->set_data_rate(rate); } +void iio_manager::set_kernel_buffer_count(int kb) { + if(kb) { + m_analogin->setKernelBuffersCount(kb); + } else { + m_analogin->setKernelBuffersCount(KERNEL_BUFFERS_DEFAULT); + } +} + void iio_manager::enableMixedSignal(m2k::mixed_signal_source::sptr mixed_source) { for (int i = 0; i < nb_channels; ++i) { diff --git a/src/iio_manager.hpp b/src/iio_manager.hpp index 9dd1aefa04..7bc9cb1661 100644 --- a/src/iio_manager.hpp +++ b/src/iio_manager.hpp @@ -106,6 +106,7 @@ namespace adiscope { void set_buffer_size(port_id id, unsigned long size); void set_filter_parameters(int channel, int index, bool enable, float TC, float gain, float sample_rate ); void set_data_rate(double rate); + void set_kernel_buffer_count(int kb = 0); /* VERY ugly hack. The reconfiguration that happens after * locking/unlocking the flowgraph is sort of broken; the tags