mirror of
https://github.com/letscontrolit/ESPEasy.git
synced 2026-09-12 01:24:04 +00:00
196 lines
4.2 KiB
Arduino
196 lines
4.2 KiB
Arduino
#define CIRCULAR_BUFFER_DEBUG
|
|
#include <CircularBuffer.h>
|
|
|
|
CircularBuffer<char, 10> buffer;
|
|
|
|
void printBuffer() {
|
|
if (buffer.isEmpty()) {
|
|
Serial.println("empty");
|
|
} else {
|
|
Serial.print("[");
|
|
for (decltype(buffer)::index_t i = 0; i < buffer.size() - 1; i++) {
|
|
Serial.print(buffer[i]);
|
|
Serial.print(",");
|
|
}
|
|
Serial.print(buffer[buffer.size() - 1]);
|
|
Serial.print("] (");
|
|
|
|
Serial.print(buffer.size());
|
|
Serial.print("/");
|
|
Serial.print(buffer.size() + buffer.available());
|
|
if (buffer.isFull()) {
|
|
Serial.print(" full");
|
|
}
|
|
|
|
Serial.println(")");
|
|
}
|
|
}
|
|
|
|
void setup() {
|
|
Serial.begin(9600);
|
|
Serial.println(" ### RESET ### ");
|
|
|
|
buffer.push('A');
|
|
buffer.push('B');
|
|
buffer.push('C');
|
|
buffer.push('D');
|
|
buffer.push('E');
|
|
buffer.push('F');
|
|
buffer.push('G');
|
|
buffer.push('H');
|
|
buffer.push('I');
|
|
buffer.push('J');
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("first()");
|
|
Serial.print(buffer.first());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("last()");
|
|
Serial.print(buffer.last());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("unshift('X')");
|
|
Serial.print(buffer.unshift('X') ? "true" : "false");
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("push('Z')");
|
|
Serial.print(buffer.push('Z') ? "true" : "false");
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("pop()");
|
|
Serial.print(buffer.pop());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("pop()");
|
|
Serial.print(buffer.pop());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("pop()");
|
|
Serial.print(buffer.pop());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("pop()");
|
|
Serial.print(buffer.pop());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("pop()");
|
|
Serial.print(buffer.pop());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("shift()");
|
|
Serial.print(buffer.shift());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("shift()");
|
|
Serial.print(buffer.shift());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("shift()");
|
|
Serial.print(buffer.shift());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("shift()");
|
|
Serial.print(buffer.shift());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("shift()");
|
|
Serial.print(buffer.shift());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("push('Z')");
|
|
Serial.print(buffer.push('Z') ? "true" : "false");
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("push('X')");
|
|
Serial.print(buffer.push('X') ? "true" : "false");
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("clear()");
|
|
buffer.clear();
|
|
Serial.print("buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("unshift('A')");
|
|
Serial.print(buffer.unshift('A') ? "true" : "false");
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("push('Z')");
|
|
Serial.print(buffer.push('Z') ? "true" : "false");
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("buffer[5]");
|
|
Serial.print(buffer[5]);
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("buffer[15]");
|
|
Serial.print(buffer[15]);
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.println("clear()");
|
|
buffer.clear();
|
|
Serial.print("buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
// The following operations will crash the firmware and cause a reset
|
|
|
|
Serial.println("CRASH TEST");
|
|
|
|
Serial.print(buffer.pop());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
|
|
Serial.print(buffer.shift());
|
|
Serial.print(" buffer is ");
|
|
printBuffer();
|
|
Serial.println(); delay(250);
|
|
}
|
|
|
|
void loop() {
|
|
|
|
}
|