55#include < gnuradio/blocks/stream_to_vector.h>
66#include < gnuradio/fft/fft_v.h>
77#include < gnuradio/fft/window.h>
8+ #include < network/query.h>
89#include < radio/blocks/decimator.h>
910#include < radio/blocks/noise_learner.h>
1011#include < radio/blocks/psd.h>
1112#include < radio/blocks/spectrogram.h>
1213#include < radio/blocks/transmission.h>
1314#include < utils/radio_utils.h>
15+ #include < utils/utils.h>
1416
1517constexpr auto LABEL = " processor" ;
1618
@@ -25,6 +27,10 @@ SdrProcessor::SdrProcessor(
2527 : m_connector(connector) {
2628 const auto getFrequency = [frequencyRange]() { return frequencyRange.center (); };
2729 const auto sampleRate = device.sample_rate ;
30+ const auto sendSpectrogram = [&remoteController, device, sampleRate](const std::chrono::milliseconds& time, const Frequency& frequency, const std::vector<int8_t >& data) {
31+ SpectrogramQuery spectrogram (device.alias .empty () ? SCANNER_SOURCE_NAME : GAIN_TESTER_SOURCE_NAME, time, frequency, sampleRate, encode_base64 (data.data (), data.size ()));
32+ remoteController.sendSpectrogram (device, spectrogram);
33+ };
2834
2935 const auto fftSize = getFft (sampleRate, SIGNAL_DETECTION_MAX_STEP);
3036 const auto step = static_cast <double >(sampleRate) / fftSize;
@@ -43,7 +49,7 @@ SdrProcessor::SdrProcessor(
4349 const auto transmission = std::make_shared<Transmission>(config, device, fftSize, indexStep, notification, getFrequency, indexToFrequency, indexToShift, isIndexInRange);
4450 m_connector.connect <Block>(source, s2c, decimator, fft, psd, noiseLearner, transmission);
4551
46- const auto spectrogram = std::make_shared<Spectrogram>(fftSize, sampleRate, getFrequency, std::bind (&RemoteController:: sendSpectrogram, remoteController, device. getName (), std::placeholders::_1) );
52+ const auto spectrogram = std::make_shared<Spectrogram>(fftSize, sampleRate, getFrequency, sendSpectrogram);
4753 m_connector.connect <Block>(psd, spectrogram);
4854
4955 if (DEBUG_SAVE_FULL_POWER) {
0 commit comments