Closes #13
This commit is contained in:
1 parent
bce707daf6
commit
51fcdb88ac
174 files changed
+5220
-2213
No files matched your search
+35
-17
@@ -97,10 +97,28 @@ $(document).ready(function(){initNavTree('md_changelog.html',''); initResizable(
|
||||
<h1><a class="anchor" id="autotoc_md1"></a>
|
||||
Unreleased</h1>
|
||||
<h2><a class="anchor" id="autotoc_md2"></a>
|
||||
2026-10-07</h2>
|
||||
2026-10-11</h2>
|
||||
<h3><a class="anchor" id="autotoc_md3"></a>
|
||||
Added</h3>
|
||||
<ul>
|
||||
<li><code>ParseFileWithDiagnostics</code> and <code><a class="el" href="structDbcParseResult.html">DbcParseResult</a></code> with severity, stable error code, supplied file path, physical line number, and message for each diagnostic.</li>
|
||||
<li>Warnings for unregistered statements, including floating-point signal types, attributes, signal type references, environment variables, and vendor extensions.</li>
|
||||
<li>Quiet common DBC header handlers registered through <a class="el" href="classTypeFactory.html" title="Registry-based factory for creating objects by runtime identifier.">TypeFactory</a>; <code>NS_</code> symbol declarations do not produce unsupported-statement warnings.</li>
|
||||
<li>Regression tests for warning locations, header handling, immediate/deferred errors, file errors, empty results on failure, and legacy exception compatibility.</li>
|
||||
</ul>
|
||||
<h3><a class="anchor" id="autotoc_md4"></a>
|
||||
Changed</h3>
|
||||
<ul>
|
||||
<li>Kept <code>ParseFile</code> compatible while sharing parsing with the diagnostic API. Parsing stops at the first error and never returns a partial database.</li>
|
||||
<li>Deferred value-description and multiplexing errors carry structured source locations without extracting them from exception messages.</li>
|
||||
<li>Documented supported syntax, warning behavior, diagnostic codes, and limitations.</li>
|
||||
<li>Audited diagnostic coverage and added unsupported-statement variants, namespace termination, formatting/path handling, first-error stopping, deferred diagnostic order, duplicate/overlap errors, and supported decoding preservation tests. Linux file-read errors and legacy file-error messages are checked explicitly.</li>
|
||||
</ul>
|
||||
<h2><a class="anchor" id="autotoc_md5"></a>
|
||||
2026-10-07</h2>
|
||||
<h3><a class="anchor" id="autotoc_md6"></a>
|
||||
Added</h3>
|
||||
<ul>
|
||||
<li>Added regression coverage for signed bit-length boundaries, deterministic Intel/Motorola extraction, lookup failures, runtime validation, PGN, comments, file formatting, metadata copying/lifetime, and <a class="el" href="classTypeFactory.html" title="Registry-based factory for creating objects by runtime identifier.">TypeFactory</a> behavior.</li>
|
||||
<li>Added direct-handler and resolver tests for unsupported comments and ambiguous <code>VAL_</code> references in manually constructed databases.</li>
|
||||
<li>Documented GCC/gcov/LCOV instrumentation, Qt Creator setup, and HTML reports. Coverage after the added tests: 98.4% of lines and 71.4% of branches with GCC 14.2 and Qt 6.8.2, including the standalone tree test.</li>
|
||||
@@ -110,7 +128,7 @@ Added</h3>
|
||||
<li>Selector-first decoding using exact raw values, preserving definition order and unconditional signals. Explicit statuses distinguish inactive branches, missing selector data, insufficient payloads, and malformed runtime metadata.</li>
|
||||
<li>Registered <code>SG_MUL_VAL_</code> rejection through <a class="el" href="classTypeFactory.html" title="Registry-based factory for creating objects by runtime identifier.">TypeFactory</a>; extended and nested multiplexing remain unsupported. Added parser/decoder regression coverage and documented supported syntax and consumer behavior.</li>
|
||||
</ul>
|
||||
<h3><a class="anchor" id="autotoc_md4"></a>
|
||||
<h3><a class="anchor" id="autotoc_md7"></a>
|
||||
Changed</h3>
|
||||
<ul>
|
||||
<li>Qt-dependent targets now require the installed Qt 6.8.2 through a shared qmake version check; removed Qt 5 compatibility instructions. Core remains Qt-free.</li>
|
||||
@@ -118,7 +136,7 @@ Changed</h3>
|
||||
<li>Coverage documentation now describes the selected open GCC/LCOV toolchain.</li>
|
||||
<li>Overlapping unconditional signals are now rejected during parsing.</li>
|
||||
</ul>
|
||||
<h3><a class="anchor" id="autotoc_md5"></a>
|
||||
<h3><a class="anchor" id="autotoc_md8"></a>
|
||||
Fixed</h3>
|
||||
<ul>
|
||||
<li>Linked QtGui only in the optional model tests and used QGuiApplication with an offscreen default, resolving the QAbstractItemModelTester invalid QPixmap metatype warning without adding QtGui to the adapter library.</li>
|
||||
@@ -126,9 +144,9 @@ Fixed</h3>
|
||||
<li>Removed test compiler warnings by using <code>QVERIFY_THROWS_EXCEPTION</code> and explicitly discarding <code>nodiscard</code> return values in exception checks.</li>
|
||||
<li>Reject duplicate frames by normalized CAN ID and frame type, including equivalent extended ID encodings, and duplicate signal names within a frame. Errors report the file path and line of the repeated definition. Standard and extended frames may share a numeric ID; separate frames may reuse signal names. Added regression coverage and updated parser documentation.</li>
|
||||
</ul>
|
||||
<h2><a class="anchor" id="autotoc_md6"></a>
|
||||
<h2><a class="anchor" id="autotoc_md9"></a>
|
||||
2026-10-06</h2>
|
||||
<h3><a class="anchor" id="autotoc_md7"></a>
|
||||
<h3><a class="anchor" id="autotoc_md10"></a>
|
||||
Added</h3>
|
||||
<ul>
|
||||
<li>Added non-owning <a class="el" href="classTreeNode.html" title="Tree node for later use in model/view or other hierarchy consumers.">TreeNode</a> parent navigation and stable sibling positions; disabled node moves to preserve links while retaining unique_ptr ownership.</li>
|
||||
@@ -138,61 +156,61 @@ Added</h3>
|
||||
<li>Preserved descriptions in parsed metadata, runtime decode definitions, and UI tree metadata. Added <code><a class="el" href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2">DecodedSignalValue::GetValueDescription()</a></code> and <code>FindValueDescription()</code> for raw integer lookup before physical scaling. Unknown values retain normal numeric decoding.</li>
|
||||
<li>Added regression coverage for syntax, quoting, whitespace, integer boundaries, declaration order, invalid references, duplicates, scaling, and both builders; documented syntax, lookup behavior, and limitations in README.</li>
|
||||
</ul>
|
||||
<h2><a class="anchor" id="autotoc_md8"></a>
|
||||
<h2><a class="anchor" id="autotoc_md11"></a>
|
||||
2026-10-05</h2>
|
||||
<h3><a class="anchor" id="autotoc_md9"></a>
|
||||
<h3><a class="anchor" id="autotoc_md12"></a>
|
||||
Changed</h3>
|
||||
<ul>
|
||||
<li>Split the qmake project into a reusable static library in <code>core/</code>, a demo in <code>examples/</code>, and a combined regression test executable in <code>tests/</code>. Added shared <code>.pri</code> files and updated build instructions. (<code>f17ddb6</code>, #11)</li>
|
||||
<li>Added <code>.clang-format</code> and applied consistent formatting to the source code and tests. (<code>b91cf4a</code>, #7)</li>
|
||||
<li>Replaced lambdas with explicit functions and simpler code in statement handlers, the decoder, the demo, and regression tests. (<code>03dc8f2</code>)</li>
|
||||
</ul>
|
||||
<h3><a class="anchor" id="autotoc_md10"></a>
|
||||
<h3><a class="anchor" id="autotoc_md13"></a>
|
||||
Fixed</h3>
|
||||
<ul>
|
||||
<li>Added complete validation of <code>SG_</code> 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. <a class="el" href="structMultiplexing.html">Multiplexing</a> markers are explicitly rejected. Added regression tests and documentation. (<code>8d82b13</code>, #6)</li>
|
||||
</ul>
|
||||
<h3><a class="anchor" id="autotoc_md11"></a>
|
||||
<h3><a class="anchor" id="autotoc_md14"></a>
|
||||
Documentation and maintenance</h3>
|
||||
<ul>
|
||||
<li>Regenerated Doxygen documentation after code changes and the project restructuring. (<code>6cd9976</code>, <code>0067cb4</code>, <code>f17ddb6</code>)</li>
|
||||
<li>Removed the temporary signal-validation issue document. (<code>1163277</code>)</li>
|
||||
</ul>
|
||||
<h2><a class="anchor" id="autotoc_md12"></a>
|
||||
<h2><a class="anchor" id="autotoc_md15"></a>
|
||||
2026-10-01</h2>
|
||||
<h3><a class="anchor" id="autotoc_md13"></a>
|
||||
<h3><a class="anchor" id="autotoc_md16"></a>
|
||||
Changed</h3>
|
||||
<ul>
|
||||
<li>Moved DBC statement parsing into <code><a class="el" href="classTypeFactory.html" title="Registry-based factory for creating objects by runtime identifier.">TypeFactory</a></code>-registered handlers for <code>BO_</code>, <code>SG_</code>, and <code>CM_</code>, with a shared parse context and keyword dispatcher. Added tests for dispatch and handler replacement, and documented how to register additional handlers. (<code>88b5883</code>, #4)</li>
|
||||
<li><b>API change:</b> <code><a class="el" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">DecodedSignalValue::rawValue</a></code> now uses <code>std::variant<std::int64_t, std::uint64_t></code> instead of <code>int64_t</code>. Consumers must handle the appropriate variant alternative. Physical values remain <code>double</code> and may lose precision for large integers. (<code>69074e3</code>, #2)</li>
|
||||
</ul>
|
||||
<h3><a class="anchor" id="autotoc_md14"></a>
|
||||
<h3><a class="anchor" id="autotoc_md17"></a>
|
||||
Fixed</h3>
|
||||
<ul>
|
||||
<li>Corrected Motorola signal extraction within bytes and across byte boundaries using DBC sawtooth bit numbering. Added decoder regression tests and build instructions; introduced the <code><a class="el" href="classTypeFactory.html" title="Registry-based factory for creating objects by runtime identifier.">TypeFactory</a></code> utility. (<code>2c057b6</code>)</li>
|
||||
<li>Preserved the full unsigned 64-bit raw-value range, including values above <code>INT64_MAX</code>, and updated physical conversion and demo output. Added tests for signed and unsigned boundaries and numeric output. (<code>69074e3</code>, #2)</li>
|
||||
<li>Validated <code>BO_</code> 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. (<code>3bd9339</code>, #3)</li>
|
||||
</ul>
|
||||
<h1><a class="anchor" id="autotoc_md15"></a>
|
||||
<h1><a class="anchor" id="autotoc_md18"></a>
|
||||
v1.0 — 2026-06-14</h1>
|
||||
<p>Tag <code>v1.0</code> points to <code>38ce043</code> and includes the initial implementation below.</p>
|
||||
<h2><a class="anchor" id="autotoc_md16"></a>
|
||||
<h2><a class="anchor" id="autotoc_md19"></a>
|
||||
Documentation</h2>
|
||||
<ul>
|
||||
<li>Added source-file headers with author information and MIT license references. (<code>e2ffa97</code>)</li>
|
||||
<li>Added and subsequently simplified the Doxygen configuration. (<code>e2c07dd</code>, <code>4c8af9f</code>)</li>
|
||||
<li>Generated API documentation and refreshed the generated documentation. (<code>dfec39d</code>, <code>38ce043</code>)</li>
|
||||
</ul>
|
||||
<h2><a class="anchor" id="autotoc_md17"></a>
|
||||
<h2><a class="anchor" id="autotoc_md20"></a>
|
||||
Initial implementation — 2026-03-13</h2>
|
||||
<h3><a class="anchor" id="autotoc_md18"></a>
|
||||
<h3><a class="anchor" id="autotoc_md21"></a>
|
||||
Added</h3>
|
||||
<ul>
|
||||
<li>Initialized the repository with a README and MIT license. (<code>4270459</code>)</li>
|
||||
<li>Added the DBC parser, frame and signal metadata, a tree representation and builder, a demonstration program, and a qmake project. (<code>2a90b2d</code>)</li>
|
||||
<li>Added runtime decoding through <code><a class="el" href="classDbcDecodeBuilder.html" title="Converts parsed DBC data into runtime decode database.">DbcDecodeBuilder</a></code>, <code><a class="el" href="structDecodeDatabase.html" title="Runtime decode database with fast lookup by CAN ID.">DecodeDatabase</a></code>, and <code><a class="el" href="classDbcDecoder.html" title="Runtime CAN decoder using prebuilt decode database.">DbcDecoder</a></code>, 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. (<code>a53a5df</code>)</li>
|
||||
</ul>
|
||||
<h3><a class="anchor" id="autotoc_md19"></a>
|
||||
<h3><a class="anchor" id="autotoc_md22"></a>
|
||||
Documentation and maintenance</h3>
|
||||
<ul>
|
||||
<li>Added <code>.gitignore</code> and expanded the README with architecture, data structures, parsing behavior, decoding examples, and usage documentation. (<code>efc57d6</code>, <code>f2aa10c</code>, <code>cb20f5f</code>, <code>f0e7065</code>) </li>
|
||||
|
||||
Reference in new issue
Block a user