Closes #16
This commit is contained in:
1 parent
7022c84941
commit
c3d3bd51fb
72 files changed
+3703
-2484
No files matched your search
@@ -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.
|
||||
|
||||
Reference in new issue
Block a user