You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Made EnableInterrupt a required dependency for AVR boards while retaining compatibility with sketches that do not include its header directly.
BREAKING Introduced the SDI12_INTERNAL_PCINT macro to control internal PCINT ISRs on AVR boards, replacing the previous SDI12_EXTERNAL_PCINT approach.
Reworked command sequencing around the new recorder workflow, including retry/break behavior and cancellation handling that returns the bus to listening mode.
Split shared protocol timing and response-limit definitions into dedicated protocol headers/source to simplify core transport maintenance.
Updated and reorganized example coverage toward recorder-driven and non-blocking usage patterns.
Added
Added the new SDI12Recorder API implementation for phased command/response orchestration.
Added non-blocking recorder examples, including m_non_blocking_concurrent_logger and n_non_blocking_measurement.
Added a terminal-style command example (g_terminal_interface) and an examples/extras/raw_extended_commands sketch for raw command workflows.
Added CI coverage for SDI12_INTERNAL_PCINT example compilation.
Added the SDI12_RECEIVE_EVENT_COMMAND_COMPLETED keyword token.
Removed
Removed deprecated example sketches that were replaced by recorder-focused or reorganized examples (f_basic_data_request, g_terminal_window, i_SDI-12_interface, j_external_pcint_library, and l_verify_crc).
Removed extras/TestCommands.
Potentially breaking: Removed the macros SDI12_VALUE_STR_SIZE, SDI12_DATA_STR_SIZE, and SDI12_HV_STR_SIZE. The values can now be found in the SDI12ResponseLimits struct. These numbers are defined by the protocol specification.
Fixed
Added a link-time fallback EnableInterrupt implementation to prevent missing symbols in existing AVR sketches without conflicting with sketches or libraries that provide EnableInterrupt themselves.
Fixed parsing boundaries between command terminators (!) and response terminators (CRLF) to reduce malformed-response handling edge cases.
Fixed service-request and zero-value response handling edge cases in recorder-driven data collection.