12 static const char *
const TAG =
"ring_buffer";
15 std::unique_ptr<RingBuffer> rb = make_unique<RingBuffer>();
18 rb->storage_ = allocator.allocate(len + 1);
19 if (rb->storage_ ==
nullptr) {
23 rb->handle_ = xStreamBufferCreateStatic(len + 1, 0, rb->storage_, &rb->structure_);
24 ESP_LOGD(TAG,
"Created ring buffer with size %u", len);
29 return xStreamBufferReceive(this->
handle_, data, len, ticks_to_wait);
35 size_t needed = len -
free;
36 uint8_t discard[needed];
37 xStreamBufferReceive(this->
handle_, discard, needed, 0);
39 return xStreamBufferSend(this->
handle_, data, len, 0);
An STL allocator that uses SPI RAM.
size_t read(void *data, size_t len, TickType_t ticks_to_wait=0)
This is a workaround until we can figure out a way to get the tflite-micro idf component code availab...
size_t write(void *data, size_t len)
static std::unique_ptr< RingBuffer > create(size_t len)
StreamBufferHandle_t handle_