adding_metadata_to_gr
alon 2024-02-06 11:28:17 +02:00
rodzic b8a9fe8dc0
commit 6050cf0627
4 zmienionych plików z 20 dodań i 8 usunięć

Wyświetl plik

@ -57,7 +57,7 @@ outputs:
domain: stream
dtype: complex
- label: meta
- label: sync
domain: stream
dtype: byte

Wyświetl plik

@ -79,9 +79,22 @@ namespace gr {
gr_vector_void_star &output_items)
{
auto out_samples = static_cast<gr_complex*>(output_items[0]);
auto out_meta = static_cast<cariboulite_sample_meta*>(output_items[1]);
int ret = _radio->ReadSamples(out_samples, out_meta, static_cast<size_t>(noutput_items));
if (ret <= 0) return 0;
auto out_sync = static_cast<uint8_t*>(output_items[1]);
_metadata = new cariboulite_sample_meta[noutput_items];
int ret = _radio->ReadSamples(out_samples, _metadata, static_cast<size_t>(noutput_items));
if (ret <= 0) { //fail
delete[] _metadata;
return 0;
} else { //success
for (int i = 0; i < ret; i++)
{
out_sync[i] = _metadata[i].sync;
}
delete[] _metadata;
}
return ret;
}

Wyświetl plik

@ -27,6 +27,7 @@ namespace gr
float _sample_rate;
float _frequency;
size_t _mtu_size;
cariboulite_sample_meta* _metadata;
CaribouLite* _cl;
CaribouLiteRadio *_radio;

Wyświetl plik

@ -1,4 +1,5 @@
#include "CaribouLite.hpp"
#include <string.h>
//=================================================================
void CaribouLiteRadio::CaribouLiteRxThread(CaribouLiteRadio* radio)
@ -122,10 +123,7 @@ int CaribouLiteRadio::ReadSamples(std::complex<short>* samples, cariboulite_samp
if (meta)
{
for (size_t i = 0; i < (size_t)ret; i++)
{
meta[i] = _read_metadata[i];
}
memcpy(meta, _read_metadata, sizeof(cariboulite_sample_meta) * (size_t)ret);
}
return ret;