From fd485e7ba252a2a397149b61221d3310547d7bb0 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sun, 19 Apr 2026 00:02:43 -0400 Subject: [PATCH 1/4] add library properties --- library.properties | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 library.properties diff --git a/library.properties b/library.properties new file mode 100644 index 0000000..1a11919 --- /dev/null +++ b/library.properties @@ -0,0 +1,10 @@ +name=SerialCommandCoordinator +version=0.1.0 +author=Matthew Miller +maintainer=Matthew Miller +sentence=A memory-efficient, zero-heap, non-blocking serial command dispatcher. +paragraph=A lightweight string parser designed to safely map incoming serial commands to registered function addresses. It operates entirely without dynamic memory allocation (zero-heap) to prevent fragmentation. Features include automatic buffer overflow recovery, in-place parameter extraction, interactive sub-mode polling, and seamless compatibility across 8-bit and 32-bit Arduino architectures. +category=Data Processing +url=https://github.com/mattykakes/SerialCommandCoordinator +architectures=* +includes=SerialCommandCoordinator.h \ No newline at end of file From 3775a1e37536555546802ab4b4569b89be181bce Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sun, 19 Apr 2026 00:19:15 -0400 Subject: [PATCH 2/4] Use example as CI integration test --- .github/workflows/multi-platform-ci.yaml | 19 +++++++++++-------- .../BasicUsage.ino | 0 tests/integration/Make | 4 ++-- 3 files changed, 13 insertions(+), 10 deletions(-) rename tests/integration/integration.ino => examples/BasicUsage.ino (100%) diff --git a/.github/workflows/multi-platform-ci.yaml b/.github/workflows/multi-platform-ci.yaml index a35c6d5..d0d5c5e 100644 --- a/.github/workflows/multi-platform-ci.yaml +++ b/.github/workflows/multi-platform-ci.yaml @@ -68,12 +68,12 @@ jobs: run: | mkdir -p ./artifacts/${{ matrix.name }} - # Target the integration tests instead of the example + # Pointing to the example instead of tests/ arduino-cli compile --library . \ -b ${{ matrix.board }} \ - tests/integration/integration.ino \ + examples/BasicUsage/BasicUsage.ino \ --output-dir ./artifacts/${{ matrix.name }} \ - --export-binaries # This is critical for ESP32/SAMD bootability + --export-binaries - name: Upload Binaries uses: actions/upload-artifact@v4 @@ -104,18 +104,21 @@ jobs: - name: Compile Native Executable run: | - # 1. Generate the Makefile on the fly + # 1. Generate Makefile pointing to the new example path cat << 'EOF' > tests/integration/Makefile - APP_NAME := integration + APP_NAME := BasicUsage CXXFLAGS += -I../../ + VPATH := ../../examples/BasicUsage include $(EPOXY_DUINO_DIR)/EpoxyDuino.mk EOF - # 2. Compile it + # 2. Compile export EPOXY_DUINO_DIR=$PWD/EpoxyDuino make -C tests/integration - name: Run Native Simulation run: | - # Run the Python test harness against the native executable - python3 tests/integration/yaml_runner.py --yaml tests/integration/universal_test.yaml --binary tests/integration/integration.out \ No newline at end of file + # Run runner against the binary generated from the example + python3 tests/integration/yaml_runner.py \ + --yaml tests/integration/universal_test.yaml \ + --binary tests/integration/BasicUsage.out diff --git a/tests/integration/integration.ino b/examples/BasicUsage.ino similarity index 100% rename from tests/integration/integration.ino rename to examples/BasicUsage.ino diff --git a/tests/integration/Make b/tests/integration/Make index 79807a9..c019c54 100644 --- a/tests/integration/Make +++ b/tests/integration/Make @@ -1,7 +1,7 @@ # tests/integration/Makefile -APP_NAME := integration.out +APP_NAME := BasicUsage ARDUINO_LIBS := SerialCommandCoordinator # Point to where your library source files live relative to this directory -USER_LIB_DIRS := ../../ +USER_LIB_DIRS := ../../examples/BasicUsage include $(EPOXY_CORE_PATH)/EpoxyCore.mk From d982ba64ffcd45b10325d3798b7109c16f6d2de4 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sun, 19 Apr 2026 00:25:41 -0400 Subject: [PATCH 3/4] bad directory --- .github/workflows/multi-platform-ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multi-platform-ci.yaml b/.github/workflows/multi-platform-ci.yaml index d0d5c5e..0d09db2 100644 --- a/.github/workflows/multi-platform-ci.yaml +++ b/.github/workflows/multi-platform-ci.yaml @@ -71,7 +71,7 @@ jobs: # Pointing to the example instead of tests/ arduino-cli compile --library . \ -b ${{ matrix.board }} \ - examples/BasicUsage/BasicUsage.ino \ + examples/BasicUsage.ino \ --output-dir ./artifacts/${{ matrix.name }} \ --export-binaries From 8da3b38dbf471fc285e45158ffbf04bd572d4de1 Mon Sep 17 00:00:00 2001 From: Matthew Miller Date: Sun, 19 Apr 2026 00:31:25 -0400 Subject: [PATCH 4/4] inside directory --- .github/workflows/multi-platform-ci.yaml | 2 +- examples/{ => BasicUsage}/BasicUsage.ino | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename examples/{ => BasicUsage}/BasicUsage.ino (100%) diff --git a/.github/workflows/multi-platform-ci.yaml b/.github/workflows/multi-platform-ci.yaml index 0d09db2..d0d5c5e 100644 --- a/.github/workflows/multi-platform-ci.yaml +++ b/.github/workflows/multi-platform-ci.yaml @@ -71,7 +71,7 @@ jobs: # Pointing to the example instead of tests/ arduino-cli compile --library . \ -b ${{ matrix.board }} \ - examples/BasicUsage.ino \ + examples/BasicUsage/BasicUsage.ino \ --output-dir ./artifacts/${{ matrix.name }} \ --export-binaries diff --git a/examples/BasicUsage.ino b/examples/BasicUsage/BasicUsage.ino similarity index 100% rename from examples/BasicUsage.ino rename to examples/BasicUsage/BasicUsage.ino