This commit is contained in:
2026-02-12 21:00:02 -08:00
parent 77f8236347
commit 8bdbf227ca
1141 changed files with 1010880 additions and 2 deletions

View 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)

View 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() {}