snapshot
This commit is contained in:
22
libraries/audio-tools/tests-cmake/hdlc/CMakeLists.txt
Normal file
22
libraries/audio-tools/tests-cmake/hdlc/CMakeLists.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
# set the project name
|
||||
project(hdlc)
|
||||
set (CMAKE_CXX_STANDARD 11)
|
||||
set (DCMAKE_CXX_FLAGS "-Werror")
|
||||
# add_compile_options(-Wstack-usage=1024)
|
||||
|
||||
# Build with arduino-audio-tools
|
||||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_BINARY_DIR}/arduino-audio-tools )
|
||||
endif()
|
||||
|
||||
# build sketch as executable
|
||||
add_executable (hdlc hdlc.cpp)
|
||||
|
||||
# set preprocessor defines
|
||||
target_compile_definitions(hdlc PUBLIC -DIS_DESKTOP)
|
||||
|
||||
# specify libraries
|
||||
target_link_libraries(hdlc arduino_emulator arduino-audio-tools)
|
||||
|
||||
58
libraries/audio-tools/tests-cmake/hdlc/hdlc.cpp
Normal file
58
libraries/audio-tools/tests-cmake/hdlc/hdlc.cpp
Normal file
@@ -0,0 +1,58 @@
|
||||
// Simple wrapper for Arduino sketch to compilable with cpp in cmake
|
||||
#include "AudioTools.h"
|
||||
#include "AudioTools/Communication/HDLCStream.h"
|
||||
|
||||
RingBuffer<uint8_t> ringBuffer(5 * 1024);
|
||||
QueueStream<uint8_t> queueStream(ringBuffer);
|
||||
HDLCStream hdlcStream(queueStream, 1024);
|
||||
|
||||
// Arduino Setup
|
||||
void setup(void) {
|
||||
// Open Serial
|
||||
Serial.begin(115200);
|
||||
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Info);
|
||||
|
||||
queueStream.begin();
|
||||
Serial.println(ringBuffer.available());
|
||||
|
||||
uint8_t data[1024];
|
||||
// write 100 bytes
|
||||
memset(data, 1, sizeof(data));
|
||||
size_t written = hdlcStream.write(data, 100);
|
||||
Serial.println(ringBuffer.available());
|
||||
assert(written == 100);
|
||||
|
||||
// write 200 bytes
|
||||
memset(data, 2, sizeof(data));
|
||||
written = hdlcStream.write(data, 200);
|
||||
Serial.println(ringBuffer.available());
|
||||
assert(written == 200);
|
||||
|
||||
// write 300 bytes
|
||||
memset(data, 3, sizeof(data));
|
||||
written = hdlcStream.write(data, 300);
|
||||
Serial.println(ringBuffer.available());
|
||||
assert(written == 300);
|
||||
|
||||
// read back first write
|
||||
size_t read = hdlcStream.readBytes(data, 1000);
|
||||
Serial.println(read);
|
||||
for (int j=0;j<100;j++) assert(data[j] == 1);
|
||||
assert(read == 100);
|
||||
|
||||
// read back second write
|
||||
read = hdlcStream.readBytes(data, 1000);
|
||||
Serial.println(read);
|
||||
for (int j=0;j<200;j++) assert(data[j] == 2);
|
||||
assert(read == 200);
|
||||
|
||||
// read back third write
|
||||
read = hdlcStream.readBytes(data, 1000);
|
||||
Serial.println(read);
|
||||
for (int j=0;j<300;j++) assert(data[j] == 3);
|
||||
assert(read == 300);
|
||||
Serial.println("END");
|
||||
}
|
||||
|
||||
// Arduino loop - copy sound to out
|
||||
void loop() {}
|
||||
Reference in New Issue
Block a user