kopia lustrzana https://github.com/cariboulabs/cariboulite
block compiles
rodzic
b8a9fe8dc0
commit
6050cf0627
|
@ -57,7 +57,7 @@ outputs:
|
||||||
domain: stream
|
domain: stream
|
||||||
dtype: complex
|
dtype: complex
|
||||||
|
|
||||||
- label: meta
|
- label: sync
|
||||||
domain: stream
|
domain: stream
|
||||||
dtype: byte
|
dtype: byte
|
||||||
|
|
||||||
|
|
|
@ -79,9 +79,22 @@ namespace gr {
|
||||||
gr_vector_void_star &output_items)
|
gr_vector_void_star &output_items)
|
||||||
{
|
{
|
||||||
auto out_samples = static_cast<gr_complex*>(output_items[0]);
|
auto out_samples = static_cast<gr_complex*>(output_items[0]);
|
||||||
auto out_meta = static_cast<cariboulite_sample_meta*>(output_items[1]);
|
auto out_sync = static_cast<uint8_t*>(output_items[1]);
|
||||||
int ret = _radio->ReadSamples(out_samples, out_meta, static_cast<size_t>(noutput_items));
|
|
||||||
if (ret <= 0) return 0;
|
_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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ namespace gr
|
||||||
float _sample_rate;
|
float _sample_rate;
|
||||||
float _frequency;
|
float _frequency;
|
||||||
size_t _mtu_size;
|
size_t _mtu_size;
|
||||||
|
cariboulite_sample_meta* _metadata;
|
||||||
|
|
||||||
CaribouLite* _cl;
|
CaribouLite* _cl;
|
||||||
CaribouLiteRadio *_radio;
|
CaribouLiteRadio *_radio;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "CaribouLite.hpp"
|
#include "CaribouLite.hpp"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
//=================================================================
|
//=================================================================
|
||||||
void CaribouLiteRadio::CaribouLiteRxThread(CaribouLiteRadio* radio)
|
void CaribouLiteRadio::CaribouLiteRxThread(CaribouLiteRadio* radio)
|
||||||
|
@ -122,10 +123,7 @@ int CaribouLiteRadio::ReadSamples(std::complex<short>* samples, cariboulite_samp
|
||||||
|
|
||||||
if (meta)
|
if (meta)
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < (size_t)ret; i++)
|
memcpy(meta, _read_metadata, sizeof(cariboulite_sample_meta) * (size_t)ret);
|
||||||
{
|
|
||||||
meta[i] = _read_metadata[i];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Ładowanie…
Reference in New Issue