Files
dbc/changelog.md
T
2026-10-06 16:54:02 -04:00

3.8 KiB
Raw Blame History

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)