93 lines
3.8 KiB
Markdown
93 lines
3.8 KiB
Markdown
# Changelog
|
||
|
||
This changelog summarizes the Git history through `f17ddb6`. Entries are listed
|
||
newest first. Dates follow the commit author dates. `v1.0` is the existing Git
|
||
tag; subsequent changes have no release tag and are listed as unreleased.
|
||
|
||
## Unreleased
|
||
|
||
### 2026-10-05
|
||
|
||
#### Changed
|
||
|
||
- Split the qmake project into a reusable static library in `core/`, a demo in
|
||
`examples/`, and a combined regression test executable in `tests/`. Added
|
||
shared `.pri` files and updated build instructions. (`f17ddb6`, #11)
|
||
- Added `.clang-format` and applied consistent formatting to the source code
|
||
and tests. (`b91cf4a`, #7)
|
||
- Replaced lambdas with explicit functions and simpler code in statement
|
||
handlers, the decoder, the demo, and regression tests. (`03dc8f2`)
|
||
|
||
#### Fixed
|
||
|
||
- Added complete validation of `SG_` signal statements, including syntax,
|
||
receivers, numeric fields, lengths of 1–64 bits, physical ranges, and signal
|
||
bounds within the declared frame payload for Intel and Motorola bit order.
|
||
Invalid definitions report the file path and line number. Multiplexing
|
||
markers are explicitly rejected. Added regression tests and documentation.
|
||
(`8d82b13`, #6)
|
||
|
||
#### Documentation and maintenance
|
||
|
||
- Regenerated Doxygen documentation after code changes and the project
|
||
restructuring. (`6cd9976`, `0067cb4`, `f17ddb6`)
|
||
- Removed the temporary signal-validation issue document. (`1163277`)
|
||
|
||
### 2026-10-01
|
||
|
||
#### Changed
|
||
|
||
- Moved DBC statement parsing into `TypeFactory`-registered handlers for
|
||
`BO_`, `SG_`, and `CM_`, with a shared parse context and keyword dispatcher.
|
||
Added tests for dispatch and handler replacement, and documented how to
|
||
register additional handlers. (`88b5883`, #4)
|
||
- **API change:** `DecodedSignalValue::rawValue` now uses
|
||
`std::variant<std::int64_t, std::uint64_t>` instead of `int64_t`. Consumers
|
||
must handle the appropriate variant alternative. Physical values remain
|
||
`double` and may lose precision for large integers. (`69074e3`, #2)
|
||
|
||
#### Fixed
|
||
|
||
- Corrected Motorola signal extraction within bytes and across byte
|
||
boundaries using DBC sawtooth bit numbering. Added decoder regression
|
||
tests and build instructions; introduced the `TypeFactory` utility.
|
||
(`2c057b6`)
|
||
- Preserved the full unsigned 64-bit raw-value range, including values above
|
||
`INT64_MAX`, and updated physical conversion and demo output. Added tests
|
||
for signed and unsigned boundaries and numeric output. (`69074e3`, #2)
|
||
- Validated `BO_` frame syntax, CAN identifiers, payload lengths, numeric
|
||
overflow, and unexpected trailing fields. Parsing errors now include the
|
||
file path and physical line number. Added parser regression tests.
|
||
(`3bd9339`, #3)
|
||
|
||
## v1.0 — 2026-06-14
|
||
|
||
Tag `v1.0` points to `38ce043` and includes the initial implementation below.
|
||
|
||
### Documentation
|
||
|
||
- Added source-file headers with author information and MIT license
|
||
references. (`e2ffa97`)
|
||
- Added and subsequently simplified the Doxygen configuration.
|
||
(`e2c07dd`, `4c8af9f`)
|
||
- Generated API documentation and refreshed the generated documentation.
|
||
(`dfec39d`, `38ce043`)
|
||
|
||
### Initial implementation — 2026-03-13
|
||
|
||
#### Added
|
||
|
||
- Initialized the repository with a README and MIT license. (`4270459`)
|
||
- Added the DBC parser, frame and signal metadata, a tree representation and
|
||
builder, a demonstration program, and a qmake project. (`2a90b2d`)
|
||
- Added runtime decoding through `DbcDecodeBuilder`, `DecodeDatabase`, and
|
||
`DbcDecoder`, including CAN-frame lookup, Intel and Motorola extraction,
|
||
signed and unsigned signals, and factor/offset conversion. Updated parser
|
||
metadata and the demo to support decoding. (`a53a5df`)
|
||
|
||
#### Documentation and maintenance
|
||
|
||
- Added `.gitignore` and expanded the README with architecture, data
|
||
structures, parsing behavior, decoding examples, and usage documentation.
|
||
(`efc57d6`, `f2aa10c`, `cb20f5f`, `f0e7065`)
|