@@ -8,34 +8,56 @@ All notable changes to CRUMBS are documented in this file.
88
99### Added
1010
11- - ** ESP32 CI build validation** — ` [env:esp32dev] ` added to all eight example ` platformio.ini `
12- files; eight matching ` esp32dev ` build steps added to the ` platformio ` CI job. Validates that
13- all examples compile cleanly for ESP32 (espressif32 platform, Arduino framework).
14- - ` docs/platform-setup.md ` — added ESP32 ` platformio.ini ` snippet with I²C pin note.
11+ - ** Raw I2C helper APIs** (` src/crumbs.h ` , ` src/core/crumbs_i2c_helpers.c ` )
12+ - ` crumbs_i2c_dev_write ` , ` crumbs_i2c_dev_read ` , ` crumbs_i2c_dev_write_then_read `
13+ - register helpers: ` read_reg_ex ` / ` write_reg_ex ` , plus ` u8 ` and ` u16be ` wrappers
14+ - standardized ` CRUMBS_I2C_DEV_E_* ` return codes
15+ - ** Candidate-address CRUMBS scanner**
16+ - ` crumbs_controller_scan_for_crumbs_candidates(...) ` for mixed-bus safe probing without broad sweeps
17+ - ** HAL combined transfer support**
18+ - ` crumbs_linux_write_then_read(...) `
19+ - ` crumbs_arduino_write_then_read(...) `
20+ - ** Mixed-bus validation examples**
21+ - Linux: ` examples/core_usage/linux/mixed_bus_controller/ `
22+ - Arduino: ` examples/core_usage/arduino/mixed_bus_controller/ `
23+ - includes CRUMBS candidate scanning + non-CRUMBS sensor register I/O flow
24+ - ** Coverage for new helpers**
25+ - ` tests/test_i2c_helpers.c `
26+ - ** Core Arduino example consistency**
27+ - added simple ` LED_BUILTIN ` heartbeat across core Arduino examples
28+ - standardized ` config.h ` usage in core Arduino examples
29+ - ** ESP32 CI build validation**
30+ - ` [env:esp32dev] ` coverage added across PlatformIO examples and CI workflow steps
31+ - ` docs/platform-setup.md ` ESP32 PlatformIO snippet with I2C pin guidance
1532
1633### Fixed
1734
18- - ** ` examples/handlers_usage/linux/mock_controller/mock_controller.c ` ** — updated all
19- ` mock_query_* ` / ` mock_send_* ` call sites to the ` crumbs_device_t *dev ` API introduced in
20- 0.11.0; replaced deprecated ` crumbs_linux_read_message ` + manual parse with ` mock_get_*() `
21- combined helpers. Fixes Linux CI compile failure.
22-
23- - ** ` examples/handlers_usage/platformio/mock_controller/src/main.cpp ` ** — same migration for
24- the Arduino/PlatformIO mock controller: added ` crumbs_device_t dev ` global, rewrote
25- ` query_and_print() ` to use ` mock_get_*() ` , updated ` cmd_echo / cmd_heartbeat / cmd_toggle `
26- to pass ` &dev ` . Fixes PlatformIO CI compile failure.
27-
28- - ** ` LED_BUILTIN ` fallback for ESP32** — added ` #ifndef LED_BUILTIN / #define LED_BUILTIN 2 `
29- guards to ` simple_peripheral/src/main.cpp ` and ` mock_peripheral/src/main.cpp ` ; the
30- ` espressif32 ` platform does not define ` LED_BUILTIN ` for ` esp32dev ` , causing a compile error
31- on ESP32 CI builds. GPIO 2 is the standard onboard LED for ESP32 DevKit boards.
35+ - Linux mixed-bus controller parser and CLI path issues for ` read-ex ` /` write-ex ` handling
36+ - Linux HAL portability by defining ` _DEFAULT_SOURCE ` for ` usleep() ` under ` -std=c11 `
37+ - handlers_usage mock controller examples updated to ` crumbs_device_t ` APIs and query helpers (Linux + PlatformIO), resolving CI compile failures
38+ - ` LED_BUILTIN ` fallback for ESP32 examples (` #ifndef LED_BUILTIN ... #define LED_BUILTIN 2 ` )
39+ - API reference scan behavior documentation corrections
3240
3341### Changed
3442
35- - Post-release docs sweep (` 0649205 ` ): corrected stale ` 0.10.3 ` version references in all
36- eight ` platformio.ini ` examples, ` CONTRIBUTING.md ` , ` docs/index.md ` , and
37- ` docs/api-reference.md ` ; fixed hardcoded ` MINOR ` /` PATCH ` values in ` test_version.c ` .
38- - README badge layout revised; ` .gitignore ` extended with ` *.log ` pattern.
43+ - ** Mixed-bus Arduino controller flow** (` examples/core_usage/arduino/mixed_bus_controller/ ` )
44+ - startup validation pass + periodic status pass (default 5s)
45+ - CRUMBS query reply printout for discovered devices
46+ - BMP/BME chip-id + raw sample byte printout per configured sensor
47+ - ** Core docs and examples updated for mixed-bus usage**
48+ - explicit min/max topology guidance
49+ - unique address guidance for CRUMBS peripherals
50+ - candidate-address scanning pattern documented
51+ - ** License posture aligned to AGPL**
52+ - repository license is GNU AGPL v3
53+ - metadata/docs references updated to AGPL-3.0-or-later
54+ - ** Repository line ending policy added**
55+ - ` .gitattributes ` now enforces LF for text and CRLF for Windows scripts to reduce cross-platform churn
56+ - ** Code quality**
57+ - read-helper bounds checks use explicit ` size_t ` casts in ` crumbs_message_helpers.h ` to avoid conversion/sign-compare warning noise
58+ - Post-0.11.0 version/docs sweep:
59+ - stale version references corrected across examples/docs
60+ - README badge/layout cleanup and ` .gitignore ` log pattern expansion
3961
4062---
4163
@@ -184,18 +206,6 @@ All notable changes to CRUMBS are documented in this file.
184206
185207---
186208
187- ## [ Unreleased] - Code Quality
188-
189- ### Changed
190-
191- - ** Read helper bounds checks now use explicit ` size_t ` casts** (` crumbs_message_helpers.h ` )
192- - ` crumbs_msg_read_u16 ` , ` crumbs_msg_read_u32 ` , ` crumbs_msg_read_float ` , ` crumbs_msg_read_bytes `
193- - Arithmetic in bounds checks now cast to ` size_t ` before addition, matching the existing style of the ` add_* ` helpers
194- - Eliminates potential ` -Wconversion ` /` -Wsign-compare ` warnings (particularly the ` read_float ` case where ` int ` was previously compared against ` size_t ` from ` sizeof ` )
195- - No functional change — semantics were already correct due to C integer promotion rules
196-
197- ---
198-
199209## [ 0.10.3] - Examples Improvements
200210
201211### Added
0 commit comments