This commit is contained in:
deeaitch committed 2026-10-13 08:17:49 -04:00
1 parent 7022c84941
commit c3d3bd51fb
72 files changed
+3703 -2484

No files matched your search

+16
View File
@@ -10,6 +10,13 @@ existing Git tag; subsequent changes are listed as unreleased.
#### Added
- Issue #16: construction-time validation for both manual runtime definitions and
`DbcDecodeBuilder` input: normalized CAN IDs, duplicate keys, signal lengths and
positions, enums, finite numeric parameters, ordered ranges, selectors, branch
ranges, and overlaps.
- Regression tests for both construction paths, numeric and bit boundaries,
mixed byte orders, exclusive overlaps, mutable input aliases, and failed reloads.
- `FrameDecodeStatus` distinguishes unknown frames, insufficient payloads,
signal errors, and successful decoding; frame `valid` still means matched.
- `SignalDecodeStatus::PhysicalConversionFailed` reports NaN/Inf results,
@@ -20,6 +27,15 @@ existing Git tag; subsequent changes are listed as unreleased.
#### Changed
- Runtime construction rejects invalid definitions with `std::invalid_argument`
before publishing a snapshot. Decoder tests now expect construction failures
for malformed definitions; finite arithmetic overflow remains a decode status.
- Shared overflow-safe layout validation across parsing, construction, and
decoding. Intel extraction also widens bit coordinates before arithmetic.
- `DecodeDatabase` now accepts definitions by const reference and copies them,
even for rvalues, preventing retained
mutable aliases from modifying the frozen snapshot or invalidating its index.
- Short payloads decode available signals without padding; longer payloads
ignore bytes beyond the declared DLC. Short frame status takes precedence
over signal errors, with per-signal causes retained in definition order.