70 lines
1.5 KiB
C++
70 lines
1.5 KiB
C++
/**
|
|
* Testing peek and readBytes of BufferedStream
|
|
* - fill DynamicMemoryStream with data
|
|
* - check data of DynamicMemoryStream
|
|
* - peek data
|
|
* - check data vis BufferedStream
|
|
*/
|
|
#include "AudioTools.h"
|
|
|
|
DynamicMemoryStream data;
|
|
BufferedStream buffered(data);
|
|
HexDumpOutput out;
|
|
const int processingSize = 1024;
|
|
uint8_t buffer[processingSize];
|
|
|
|
void fillData() {
|
|
Serial.println("Filling data...");
|
|
for (int j = 0; j < processingSize; j++) {
|
|
buffer[j] = j % 256;
|
|
}
|
|
while (data.size() < processingSize * 10) {
|
|
assert(data.write(buffer, processingSize) == processingSize);
|
|
}
|
|
}
|
|
|
|
void testPeek() {
|
|
int len = buffered.peekBytes(&buffer[0], 160);
|
|
Serial.println("Peek:");
|
|
out.write(buffer, len);
|
|
Serial.println();
|
|
}
|
|
|
|
void checkData(Stream &data, bool isPrint = false) {
|
|
// check data
|
|
Serial.print("TestingData");
|
|
int n = data.readBytes(buffer, processingSize);
|
|
Serial.print(" ");
|
|
Serial.println(n);
|
|
while (n == processingSize) {
|
|
for (int j = 0; j < processingSize; j++) {
|
|
uint8_t expected = j % 256;
|
|
if (isPrint) {
|
|
Serial.print(buffer[j]);
|
|
Serial.print(", ");
|
|
Serial.println(expected);
|
|
}
|
|
assert(buffer[j] == expected);
|
|
n = data.readBytes(buffer, processingSize);
|
|
assert(n == 0 || n == processingSize);
|
|
}
|
|
}
|
|
Serial.println("test OK!");
|
|
}
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
|
|
delay(5000);
|
|
|
|
data.begin();
|
|
fillData();
|
|
testPeek();
|
|
checkData(data);
|
|
|
|
data.rewind();
|
|
checkData(buffered);
|
|
}
|
|
|
|
void loop() {
|
|
} |