EZO sensor hardware provider for the Anolis runtime.
- Runnable ADPP provider with config parsing, framed stdio transport, and unit tests.
- Serialized I2C execution model with Linux and mock session support.
- Full EZO family coverage (
ph,orp,ec,do,rtd,hum) with fixed signal surfaces. - Safe control functions across families (
find,set_led,sleep). - Startup identity verification with active/excluded inventory diagnostics.
- Mixed-bus validation assets for Windows mock and Linux real hardware.
- Runtime duplicate ownership validation integration landed in
anolis.
Requires local access to:
anolis-protocol(default:../anolis-protocolorexternal/anolis-protocol)ezo-driver(default:../ezo-driverorexternal/ezo-driver)
Linux (Debian/Ubuntu):
sudo apt-get update
sudo apt-get install -y build-essential cmake ninja-build git curl zip unzip tar pkg-config python3 python3-pipWindows (PowerShell):
winget install Kitware.CMake
winget install Ninja-build.Ninja
winget install Git.Git
winget install Python.Python.3.12Install Visual Studio 2022 (or Build Tools) with the Desktop development with C++ workload.
Linux/macOS:
git clone https://github.com/microsoft/vcpkg.git "$HOME/vcpkg"
"$HOME/vcpkg/bootstrap-vcpkg.sh"
echo 'export VCPKG_ROOT="$HOME/vcpkg"' >> ~/.bashrc
export VCPKG_ROOT="$HOME/vcpkg"
test -f "$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake"Windows (PowerShell):
git clone https://github.com/microsoft/vcpkg.git $env:USERPROFILE\vcpkg
& "$env:USERPROFILE\vcpkg\bootstrap-vcpkg.bat"
[Environment]::SetEnvironmentVariable("VCPKG_ROOT", "$env:USERPROFILE\\vcpkg", "User")
$env:VCPKG_ROOT = [Environment]::GetEnvironmentVariable("VCPKG_ROOT", "User")
Test-Path "$env:VCPKG_ROOT\scripts\buildsystems\vcpkg.cmake"Linux/macOS (Release):
cmake --preset dev-release
cmake --build --preset dev-releaseLinux mixed-bus hardware validation (canonical cross-provider preset naming):
cmake --preset dev-linux-hardware-release
cmake --build --preset dev-linux-hardware-releasedev-linux-hardware-* presets in this repo are naming-alias presets for cross-provider consistency with anolis-provider-bread.
Windows (MSVC Release):
cmake --preset dev-windows-release
cmake --build --preset dev-windows-releaseLinux/macOS:
ctest --preset dev-releaseLinux mixed-bus hardware validation path:
ctest --preset dev-linux-hardware-releaseWindows:
ctest --preset dev-windows-releaseLinux/macOS:
./build/dev-release/anolis-provider-ezo --check-config config/example.local.yaml
./build/dev-release/anolis-provider-ezo --config config/example.local.yamlLinux mixed-bus hardware validation build path:
./build/dev-linux-hardware-release/anolis-provider-ezo --check-config config/example.local.yaml
./build/dev-linux-hardware-release/anolis-provider-ezo --config config/example.local.yamlWindows:
.\build\dev-windows-release\Release\anolis-provider-ezo.exe --check-config config\example.local.yaml
.\build\dev-windows-release\Release\anolis-provider-ezo.exe --config config\example.local.yaml- Canonical config pack and runbook:
../anolis/config/mixed-bus-providers/ - Canonical HTTP validation script:
../anolis/config/mixed-bus-providers/check_mixed_bus_http.sh - Validation summary:
docs/mixed-bus-validation.md
For Linux mixed-bus hardware runs:
- Build
anolis-provider-breadwithdev-linux-hardware-release. - Build
anolis-provider-ezowithdev-linux-hardware-release. ../anolis/config/mixed-bus-providers/provider-bread.yamlsetshardware.require_live_session: trueso startup fails fast if bread is built without hardware support.
- docs/README.md
- Planning notes:
working/(gitignored)
Local API docs: run doxygen docs/Doxyfile from the repo root.
Generated output goes to build/docs/doxygen/html/ and remains untracked.