upfate doxygen

This commit is contained in:
deeaitch committed 2026-10-20 13:40:44 -04:00
1 parent a55d1c58ed
commit c43222939f
433 files changed
+15617 -7061

No files matched your search

+41 -34
View File
@@ -95,40 +95,47 @@ $(document).ready(function(){initNavTree('annotated.html',''); initResizable();
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcCommentHandler.html" target="_self">DbcCommentHandler</a></td><td class="desc"></td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcDatabase.html" target="_self">DbcDatabase</a></td><td class="desc">Parsed DBC content stored in a simple internal form </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcDecodeBuilder.html" target="_self">DbcDecodeBuilder</a></td><td class="desc">Converts parsed DBC data into runtime decode database </td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcDecoder.html" target="_self">DbcDecoder</a></td><td class="desc">Runtime CAN decoder using prebuilt decode database </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcDiagnostic.html" target="_self">DbcDiagnostic</a></td><td class="desc"></td></tr>
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcDiagnosticError.html" target="_self">DbcDiagnosticError</a></td><td class="desc"></td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcFrameHandler.html" target="_self">DbcFrameHandler</a></td><td class="desc"></td></tr>
<tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcHeaderHandler.html" target="_self">DbcHeaderHandler</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcParseContext.html" target="_self">DbcParseContext</a></td><td class="desc"></td></tr>
<tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcParser.html" target="_self">DbcParser</a></td><td class="desc">Minimal DBC parser </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcParseResult.html" target="_self">DbcParseResult</a></td><td class="desc"></td></tr>
<tr id="row_11_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcSignalHandler.html" target="_self">DbcSignalHandler</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcStatementDispatcher.html" target="_self">DbcStatementDispatcher</a></td><td class="desc"></td></tr>
<tr id="row_13_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcStatementHandler.html" target="_self">DbcStatementHandler</a></td><td class="desc"></td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcTreeBuilder.html" target="_self">DbcTreeBuilder</a></td><td class="desc">Builds a simple tree from parsed DBC database </td></tr>
<tr id="row_15_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcTreeModel.html" target="_self">DbcTreeModel</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcUnsupportedMultiplexingHandler.html" target="_self">DbcUnsupportedMultiplexingHandler</a></td><td class="desc"></td></tr>
<tr id="row_17_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcValueDescriptionHandler.html" target="_self">DbcValueDescriptionHandler</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDecodeDatabase.html" target="_self">DecodeDatabase</a></td><td class="desc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles and decoded results keep old definitions alive </td></tr>
<tr id="row_19_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDecodedFrameValue.html" target="_self">DecodedFrameValue</a></td><td class="desc">Fully decoded frame </td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDecodedSignalValue.html" target="_self">DecodedSignalValue</a></td><td class="desc">One decoded signal value </td></tr>
<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDecodeFrame.html" target="_self">DecodeFrame</a></td><td class="desc">Runtime-ready frame definition </td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDecodeSignal.html" target="_self">DecodeSignal</a></td><td class="desc">Runtime-ready signal definition </td></tr>
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFrameInfo.html" target="_self">FrameInfo</a></td><td class="desc">Describes one CAN frame from a DBC file </td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFrameKey.html" target="_self">FrameKey</a></td><td class="desc">Stable frame identifier: normalized CAN ID and frame type </td></tr>
<tr id="row_25_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFrameKeyHasher.html" target="_self">FrameKeyHasher</a></td><td class="desc">Hasher for frame key </td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMultiplexing.html" target="_self">Multiplexing</a></td><td class="desc"></td></tr>
<tr id="row_27_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPendingValueDescriptions.html" target="_self">PendingValueDescriptions</a></td><td class="desc"></td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structRawCanFrame.html" target="_self">RawCanFrame</a></td><td class="desc">Raw CAN frame used for runtime or trace decoding </td></tr>
<tr id="row_29_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structSignalInfo.html" target="_self">SignalInfo</a></td><td class="desc">Describes one signal inside a DBC frame </td></tr>
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structSignalKey.html" target="_self">SignalKey</a></td><td class="desc"></td></tr>
<tr id="row_31_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structSignalKeyHasher.html" target="_self">SignalKeyHasher</a></td><td class="desc"></td></tr>
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTreeNode.html" target="_self">TreeNode</a></td><td class="desc">Tree node for later use in model/view or other hierarchy consumers </td></tr>
<tr id="row_33_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTypeFactory.html" target="_self">TypeFactory</a></td><td class="desc">Registry-based factory for creating objects by runtime identifier </td></tr>
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structAttributeAssignment.html" target="_self">AttributeAssignment</a></td><td class="desc">Explicit assignment; defaults remain on definitions </td></tr>
<tr id="row_1_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structAttributeDefinition.html" target="_self">AttributeDefinition</a></td><td class="desc">Attribute type, permitted range, and optional default </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcAttributeHandler.html" target="_self">DbcAttributeHandler</a></td><td class="desc">Defer typed attribute statements for resolution </td></tr>
<tr id="row_3_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcCommentHandler.html" target="_self">DbcCommentHandler</a></td><td class="desc">Defer frame and signal comments for target resolution </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcDatabase.html" target="_self">DbcDatabase</a></td><td class="desc">Parsed DBC content stored in a simple internal form </td></tr>
<tr id="row_5_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcDecodeBuilder.html" target="_self">DbcDecodeBuilder</a></td><td class="desc">Converts parsed DBC data into runtime decode database </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcDecoder.html" target="_self">DbcDecoder</a></td><td class="desc">Runtime CAN decoder using prebuilt decode database </td></tr>
<tr id="row_7_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcDiagnostic.html" target="_self">DbcDiagnostic</a></td><td class="desc">Diagnostic message and physical source location </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcDiagnosticError.html" target="_self">DbcDiagnosticError</a></td><td class="desc"></td></tr>
<tr id="row_9_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcFrameHandler.html" target="_self">DbcFrameHandler</a></td><td class="desc">Parse and append frame definitions </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcHeaderHandler.html" target="_self">DbcHeaderHandler</a></td><td class="desc"></td></tr>
<tr id="row_11_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcParseContext.html" target="_self">DbcParseContext</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcParser.html" target="_self">DbcParser</a></td><td class="desc">Minimal DBC parser </td></tr>
<tr id="row_13_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcParseResult.html" target="_self">DbcParseResult</a></td><td class="desc">Parsed database and diagnostics; the database is empty on error </td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDbcParserOptions.html" target="_self">DbcParserOptions</a></td><td class="desc"></td></tr>
<tr id="row_15_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcSignalHandler.html" target="_self">DbcSignalHandler</a></td><td class="desc">Parse and append signals to the current frame </td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcStatementDispatcher.html" target="_self">DbcStatementDispatcher</a></td><td class="desc"></td></tr>
<tr id="row_17_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcStatementHandler.html" target="_self">DbcStatementHandler</a></td><td class="desc">Interface for processing a registered DBC statement </td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcTreeBuilder.html" target="_self">DbcTreeBuilder</a></td><td class="desc">Builds a simple tree from parsed DBC database </td></tr>
<tr id="row_19_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcTreeModel.html" target="_self">DbcTreeModel</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcUnsupportedMultiplexingHandler.html" target="_self">DbcUnsupportedMultiplexingHandler</a></td><td class="desc">Reject unsupported extended multiplexing statements </td></tr>
<tr id="row_21_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDbcValueDescriptionHandler.html" target="_self">DbcValueDescriptionHandler</a></td><td class="desc">Defer raw value descriptions for target resolution </td></tr>
<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classDecodeDatabase.html" target="_self">DecodeDatabase</a></td><td class="desc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles and decoded results keep old definitions alive </td></tr>
<tr id="row_23_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDecodedFrameValue.html" target="_self">DecodedFrameValue</a></td><td class="desc">Fully decoded frame </td></tr>
<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDecodedSignalValue.html" target="_self">DecodedSignalValue</a></td><td class="desc">One decoded signal value </td></tr>
<tr id="row_25_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDecodeFrame.html" target="_self">DecodeFrame</a></td><td class="desc">Runtime-ready frame definition </td></tr>
<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structDecodeSignal.html" target="_self">DecodeSignal</a></td><td class="desc">Runtime-ready signal definition </td></tr>
<tr id="row_27_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFrameInfo.html" target="_self">FrameInfo</a></td><td class="desc">Describes one CAN frame from a DBC file </td></tr>
<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFrameKey.html" target="_self">FrameKey</a></td><td class="desc">Stable frame identifier: normalized CAN ID and frame type </td></tr>
<tr id="row_29_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structFrameKeyHasher.html" target="_self">FrameKeyHasher</a></td><td class="desc">Hasher for frame key </td></tr>
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structMultiplexing.html" target="_self">Multiplexing</a></td><td class="desc"></td></tr>
<tr id="row_31_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPendingAttribute.html" target="_self">PendingAttribute</a></td><td class="desc">Attribute statement retained for ordered resolution </td></tr>
<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPendingComment.html" target="_self">PendingComment</a></td><td class="desc">Deferred frame or signal comment and its source location </td></tr>
<tr id="row_33_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPendingValueDescriptions.html" target="_self">PendingValueDescriptions</a></td><td class="desc">Deferred raw value descriptions and their target </td></tr>
<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structPgnLookupResult.html" target="_self">PgnLookupResult</a></td><td class="desc"></td></tr>
<tr id="row_35_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structRawCanFrame.html" target="_self">RawCanFrame</a></td><td class="desc">Raw CAN frame used for runtime or trace decoding </td></tr>
<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structSignalInfo.html" target="_self">SignalInfo</a></td><td class="desc">Describes one signal inside a DBC frame </td></tr>
<tr id="row_37_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structSignalKey.html" target="_self">SignalKey</a></td><td class="desc"></td></tr>
<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="structSignalKeyHasher.html" target="_self">SignalKeyHasher</a></td><td class="desc">Hasher for stable signal keys </td></tr>
<tr id="row_39_" class="odd"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTreeNode.html" target="_self">TreeNode</a></td><td class="desc">Tree node for later use in model/view or other hierarchy consumers </td></tr>
<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classTypeFactory.html" target="_self">TypeFactory</a></td><td class="desc">Registry-based factory for creating objects by runtime identifier </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
+25 -18
View File
@@ -1,37 +1,44 @@
var annotated_dup =
[
[ "DbcCommentHandler", "classDbcCommentHandler.html", null ],
[ "AttributeAssignment", "structAttributeAssignment.html", "structAttributeAssignment" ],
[ "AttributeDefinition", "structAttributeDefinition.html", "structAttributeDefinition" ],
[ "DbcAttributeHandler", "classDbcAttributeHandler.html", "classDbcAttributeHandler" ],
[ "DbcCommentHandler", "classDbcCommentHandler.html", "classDbcCommentHandler" ],
[ "DbcDatabase", "structDbcDatabase.html", "structDbcDatabase" ],
[ "DbcDecodeBuilder", "classDbcDecodeBuilder.html", "classDbcDecodeBuilder" ],
[ "DbcDecoder", "classDbcDecoder.html", "classDbcDecoder" ],
[ "DbcDiagnostic", "structDbcDiagnostic.html", null ],
[ "DbcDiagnosticError", "classDbcDiagnosticError.html", null ],
[ "DbcFrameHandler", "classDbcFrameHandler.html", null ],
[ "DbcHeaderHandler", "classDbcHeaderHandler.html", null ],
[ "DbcParseContext", "structDbcParseContext.html", null ],
[ "DbcDiagnostic", "structDbcDiagnostic.html", "structDbcDiagnostic" ],
[ "DbcDiagnosticError", "classDbcDiagnosticError.html", "classDbcDiagnosticError" ],
[ "DbcFrameHandler", "classDbcFrameHandler.html", "classDbcFrameHandler" ],
[ "DbcHeaderHandler", "classDbcHeaderHandler.html", "classDbcHeaderHandler" ],
[ "DbcParseContext", "structDbcParseContext.html", "structDbcParseContext" ],
[ "DbcParser", "classDbcParser.html", "classDbcParser" ],
[ "DbcParseResult", "structDbcParseResult.html", null ],
[ "DbcSignalHandler", "classDbcSignalHandler.html", null ],
[ "DbcParseResult", "structDbcParseResult.html", "structDbcParseResult" ],
[ "DbcParserOptions", "structDbcParserOptions.html", "structDbcParserOptions" ],
[ "DbcSignalHandler", "classDbcSignalHandler.html", "classDbcSignalHandler" ],
[ "DbcStatementDispatcher", "classDbcStatementDispatcher.html", "classDbcStatementDispatcher" ],
[ "DbcStatementHandler", "classDbcStatementHandler.html", null ],
[ "DbcStatementHandler", "classDbcStatementHandler.html", "classDbcStatementHandler" ],
[ "DbcTreeBuilder", "classDbcTreeBuilder.html", "classDbcTreeBuilder" ],
[ "DbcTreeModel", "classDbcTreeModel.html", null ],
[ "DbcUnsupportedMultiplexingHandler", "classDbcUnsupportedMultiplexingHandler.html", null ],
[ "DbcValueDescriptionHandler", "classDbcValueDescriptionHandler.html", null ],
[ "DbcTreeModel", "classDbcTreeModel.html", "classDbcTreeModel" ],
[ "DbcUnsupportedMultiplexingHandler", "classDbcUnsupportedMultiplexingHandler.html", "classDbcUnsupportedMultiplexingHandler" ],
[ "DbcValueDescriptionHandler", "classDbcValueDescriptionHandler.html", "classDbcValueDescriptionHandler" ],
[ "DecodeDatabase", "classDecodeDatabase.html", "classDecodeDatabase" ],
[ "DecodedFrameValue", "structDecodedFrameValue.html", "structDecodedFrameValue" ],
[ "DecodedSignalValue", "structDecodedSignalValue.html", "structDecodedSignalValue" ],
[ "DecodeFrame", "structDecodeFrame.html", "structDecodeFrame" ],
[ "DecodeSignal", "structDecodeSignal.html", "structDecodeSignal" ],
[ "FrameInfo", "structFrameInfo.html", "structFrameInfo" ],
[ "FrameKey", "structFrameKey.html", null ],
[ "FrameKeyHasher", "structFrameKeyHasher.html", null ],
[ "Multiplexing", "structMultiplexing.html", null ],
[ "PendingValueDescriptions", "structPendingValueDescriptions.html", null ],
[ "FrameKey", "structFrameKey.html", "structFrameKey" ],
[ "FrameKeyHasher", "structFrameKeyHasher.html", "structFrameKeyHasher" ],
[ "Multiplexing", "structMultiplexing.html", "structMultiplexing" ],
[ "PendingAttribute", "structPendingAttribute.html", "structPendingAttribute" ],
[ "PendingComment", "structPendingComment.html", "structPendingComment" ],
[ "PendingValueDescriptions", "structPendingValueDescriptions.html", "structPendingValueDescriptions" ],
[ "PgnLookupResult", "structPgnLookupResult.html", "structPgnLookupResult" ],
[ "RawCanFrame", "structRawCanFrame.html", "structRawCanFrame" ],
[ "SignalInfo", "structSignalInfo.html", "structSignalInfo" ],
[ "SignalKey", "structSignalKey.html", null ],
[ "SignalKeyHasher", "structSignalKeyHasher.html", null ],
[ "SignalKey", "structSignalKey.html", "structSignalKey" ],
[ "SignalKeyHasher", "structSignalKeyHasher.html", "structSignalKeyHasher" ],
[ "TreeNode", "classTreeNode.html", "classTreeNode" ],
[ "TypeFactory", "classTypeFactory.html", "classTypeFactory" ]
];
+182
View File
@@ -0,0 +1,182 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: attributes.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">DBC Framework
</div>
<div id="projectbrief">DBC parsing and CAN signal decoding framework</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('attributes_8h_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">attributes.h</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#ifndef DBC_ATTRIBUTES_H</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#define DBC_ATTRIBUTES_H</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span> </div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;map&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &lt;optional&gt;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="preprocessor">#include &lt;variant&gt;</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">enum class</span> AttributeScope {</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> Database,</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> Node,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> Frame,</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> Signal,</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> Environment</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span>};</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="keyword">enum class</span> AttributeType {</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> Integer,</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> Hex,</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> Float,</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> String,</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> Enum</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span>};</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="keyword">using </span>AttributeValue = std::variant&lt;std::int64_t, double, std::string&gt;;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">using </span>AttributeMap = std::map&lt;std::string, AttributeValue&gt;;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="foldopen" id="foldopen00042" data-start="{" data-end="};">
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html"> 42</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structAttributeDefinition.html">AttributeDefinition</a> {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf"> 43</a></span> AttributeScope <a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> = AttributeScope::Database; </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc"> 44</a></span> AttributeType <a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> = AttributeType::String; </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html#aaf87153bac0b228ad87b88e96f303210"> 45</a></span> std::int64_t <a class="code hl_variable" href="structAttributeDefinition.html#aaf87153bac0b228ad87b88e96f303210">integerMinimum</a> = 0; </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html#a5ca8f41ea3e921f54d81b8760c1dcfb3"> 46</a></span> std::int64_t <a class="code hl_variable" href="structAttributeDefinition.html#a5ca8f41ea3e921f54d81b8760c1dcfb3">integerMaximum</a> = 0; </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html#a18245dba995929a61fd6de1fcdbc8a89"> 47</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structAttributeDefinition.html#a18245dba995929a61fd6de1fcdbc8a89">minimum</a> = 0.0; </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html#aa02fe74b5420c2e67c13e610b6bc9713"> 48</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structAttributeDefinition.html#aa02fe74b5420c2e67c13e610b6bc9713">maximum</a> = 0.0; </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html#a547fe17f6cfc631528f9156e4a509c66"> 49</a></span> std::vector&lt;std::string&gt; <a class="code hl_variable" href="structAttributeDefinition.html#a547fe17f6cfc631528f9156e4a509c66">enumValues</a>; </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2"> 50</a></span> std::optional&lt;AttributeValue&gt; <a class="code hl_variable" href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">defaultValue</a>; </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>};</div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="foldopen" id="foldopen00059" data-start="{" data-end="};">
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structAttributeAssignment.html"> 59</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structAttributeAssignment.html">AttributeAssignment</a> {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structAttributeAssignment.html#aa8707eddd2d3a2de559fe44354a514cc"> 60</a></span> std::string <a class="code hl_variable" href="structAttributeAssignment.html#aa8707eddd2d3a2de559fe44354a514cc">name</a>; </div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270"> 61</a></span> AttributeScope <a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> = AttributeScope::Database; </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="structAttributeAssignment.html#a330ae1a34c342b0352115a83dd31aab8"> 62</a></span> std::uint32_t <a class="code hl_variable" href="structAttributeAssignment.html#a330ae1a34c342b0352115a83dd31aab8">canId</a> = 0U; </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structAttributeAssignment.html#a024a249cc63dbfbf337eea395fe3471e"> 63</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structAttributeAssignment.html#a024a249cc63dbfbf337eea395fe3471e">isExtended</a> = <span class="keyword">false</span>; </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="structAttributeAssignment.html#a50059e42e5e5b944050f3290ce84ac66"> 64</a></span> std::string <a class="code hl_variable" href="structAttributeAssignment.html#a50059e42e5e5b944050f3290ce84ac66">targetName</a>; </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"><a class="line" href="structAttributeAssignment.html#a93de8c51c5154219bf18beadcec5708f"> 65</a></span> AttributeValue <a class="code hl_variable" href="structAttributeAssignment.html#a93de8c51c5154219bf18beadcec5708f">value</a>; </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>};</div>
</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="astructAttributeAssignment_html"><div class="ttname"><a href="structAttributeAssignment.html">AttributeAssignment</a></div><div class="ttdoc">Explicit assignment; defaults remain on definitions.</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00059">attributes.h:59</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a024a249cc63dbfbf337eea395fe3471e"><div class="ttname"><a href="structAttributeAssignment.html#a024a249cc63dbfbf337eea395fe3471e">AttributeAssignment::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00063">attributes.h:63</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a330ae1a34c342b0352115a83dd31aab8"><div class="ttname"><a href="structAttributeAssignment.html#a330ae1a34c342b0352115a83dd31aab8">AttributeAssignment::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00062">attributes.h:62</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a50059e42e5e5b944050f3290ce84ac66"><div class="ttname"><a href="structAttributeAssignment.html#a50059e42e5e5b944050f3290ce84ac66">AttributeAssignment::targetName</a></div><div class="ttdeci">std::string targetName</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00064">attributes.h:64</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a50405e8db9e4536015f9adc5ba360270"><div class="ttname"><a href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">AttributeAssignment::scope</a></div><div class="ttdeci">AttributeScope scope</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00061">attributes.h:61</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a93de8c51c5154219bf18beadcec5708f"><div class="ttname"><a href="structAttributeAssignment.html#a93de8c51c5154219bf18beadcec5708f">AttributeAssignment::value</a></div><div class="ttdeci">AttributeValue value</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00065">attributes.h:65</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_aa8707eddd2d3a2de559fe44354a514cc"><div class="ttname"><a href="structAttributeAssignment.html#aa8707eddd2d3a2de559fe44354a514cc">AttributeAssignment::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00060">attributes.h:60</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html"><div class="ttname"><a href="structAttributeDefinition.html">AttributeDefinition</a></div><div class="ttdoc">Attribute type, permitted range, and optional default.</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00042">attributes.h:42</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a18245dba995929a61fd6de1fcdbc8a89"><div class="ttname"><a href="structAttributeDefinition.html#a18245dba995929a61fd6de1fcdbc8a89">AttributeDefinition::minimum</a></div><div class="ttdeci">double minimum</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00047">attributes.h:47</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a547fe17f6cfc631528f9156e4a509c66"><div class="ttname"><a href="structAttributeDefinition.html#a547fe17f6cfc631528f9156e4a509c66">AttributeDefinition::enumValues</a></div><div class="ttdeci">std::vector&lt; std::string &gt; enumValues</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00049">attributes.h:49</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a5ca8f41ea3e921f54d81b8760c1dcfb3"><div class="ttname"><a href="structAttributeDefinition.html#a5ca8f41ea3e921f54d81b8760c1dcfb3">AttributeDefinition::integerMaximum</a></div><div class="ttdeci">std::int64_t integerMaximum</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00046">attributes.h:46</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a5de5484174a8c5f6b309041089d20afc"><div class="ttname"><a href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">AttributeDefinition::type</a></div><div class="ttdeci">AttributeType type</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00044">attributes.h:44</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a5f109f0ec94eb04c3f52c116366aefdf"><div class="ttname"><a href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">AttributeDefinition::scope</a></div><div class="ttdeci">AttributeScope scope</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00043">attributes.h:43</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_aa02fe74b5420c2e67c13e610b6bc9713"><div class="ttname"><a href="structAttributeDefinition.html#aa02fe74b5420c2e67c13e610b6bc9713">AttributeDefinition::maximum</a></div><div class="ttdeci">double maximum</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00048">attributes.h:48</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_aaf87153bac0b228ad87b88e96f303210"><div class="ttname"><a href="structAttributeDefinition.html#aaf87153bac0b228ad87b88e96f303210">AttributeDefinition::integerMinimum</a></div><div class="ttdeci">std::int64_t integerMinimum</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00045">attributes.h:45</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_ae0949edf67f9d4e60e4cb376a95da4f2"><div class="ttname"><a href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">AttributeDefinition::defaultValue</a></div><div class="ttdeci">std::optional&lt; AttributeValue &gt; defaultValue</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00050">attributes.h:50</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><b>attributes.h</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
</ul>
</div>
</body>
</html>
@@ -0,0 +1,110 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Member List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">DBC Framework
</div>
<div id="projectbrief">DBC parsing and CAN signal decoding framework</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classDbcAttributeHandler.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">DbcAttributeHandler Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classDbcAttributeHandler.html">DbcAttributeHandler</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDbcAttributeHandler.html#a397f23259b7ff79abb4b5141489caa83">Handle</a>(const std::string &amp;line, DbcParseContext &amp;context) const override</td><td class="entry"><a class="el" href="classDbcAttributeHandler.html">DbcAttributeHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~DbcStatementHandler</b>()=default (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
</ul>
</div>
</body>
</html>
+181
View File
@@ -0,0 +1,181 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: DbcAttributeHandler Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">DBC Framework
</div>
<div id="projectbrief">DBC parsing and CAN signal decoding framework</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('classDbcAttributeHandler.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classDbcAttributeHandler-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">DbcAttributeHandler Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Defer typed attribute statements for resolution.
<a href="classDbcAttributeHandler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DbcAttributeHandler:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><iframe scrolling="no" frameborder="0" src="classDbcAttributeHandler__inherit__graph.svg" width="204" height="210"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a397f23259b7ff79abb4b5141489caa83" id="r_a397f23259b7ff79abb4b5141489caa83"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcAttributeHandler.html#a397f23259b7ff79abb4b5141489caa83">Handle</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const override</td></tr>
<tr class="memdesc:a397f23259b7ff79abb4b5141489caa83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a trimmed statement using state belonging to this parse. <br /></td></tr>
<tr class="separator:a397f23259b7ff79abb4b5141489caa83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Defer typed attribute statements for resolution. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00106">106</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a397f23259b7ff79abb4b5141489caa83" name="a397f23259b7ff79abb4b5141489caa83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a397f23259b7ff79abb4b5141489caa83">&#9670;&#160;</a></span>Handle()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void DbcAttributeHandler::Handle </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>line</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;&#160;</td>
<td class="paramname"><em>context</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Process a trimmed statement using state belonging to this parse. </p>
<p>Implements <a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">DbcStatementHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__attributes_8cpp_source.html#l00251">251</a> of file <a class="el" href="dbc__attributes_8cpp_source.html">dbc_attributes.cpp</a>.</p>
<p class="reference">References <a class="el" href="dbc__statement__handler_8h_source.html#l00054">DbcParseContext::lineNumber</a>, and <a class="el" href="dbc__statement__handler_8h_source.html#l00065">DbcParseContext::pendingAttributes</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a></li>
<li><a class="el" href="dbc__attributes_8cpp_source.html">dbc_attributes.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="classDbcAttributeHandler.html">DbcAttributeHandler</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
</ul>
</div>
</body>
</html>
+4
View File
@@ -0,0 +1,4 @@
var classDbcAttributeHandler =
[
[ "Handle", "classDbcAttributeHandler.html#a397f23259b7ff79abb4b5141489caa83", null ]
];
@@ -0,0 +1,5 @@
<map id="DbcAttributeHandler" name="DbcAttributeHandler">
<area shape="rect" id="Node000001" title="Defer typed attribute statements for resolution." alt="" coords="29,139,175,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title="Interface for processing a registered DBC statement." alt="" coords="5,5,199,91"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="105,104,105,138,99,138,99,104"/>
</map>
@@ -0,0 +1 @@
32f21bc3d185546ca5c7175e0922b1d6
@@ -0,0 +1,78 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.42.4 (0)
-->
<!-- Title: DbcAttributeHandler Pages: 1 -->
<svg width="153pt" height="157pt"
viewBox="0.00 0.00 153.00 157.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg id="main" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" onload="init(evt)">
<style type="text/css"><![CDATA[
.node, .edge {opacity: 0.7;}
.node.selected, .edge.selected {opacity: 1;}
.edge:hover path { stroke: red; }
.edge:hover polygon { stroke: red; fill: red; }
]]></style>
<script type="application/ecmascript" xlink:href="svg.min.js"/>
<svg id="graph" class="graph">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 153)">
<title>DbcAttributeHandler</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Defer typed attribute statements for resolution.">
<polygon fill="#999999" stroke="transparent" points="127.5,-49 17.5,-49 17.5,0 127.5,0 127.5,-49"/>
<text text-anchor="start" x="22.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcAttributeHandler</text>
<text text-anchor="start" x="70.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="33" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="57.5" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="17.5,-31.5 17.5,-31.5 127.5,-31.5 127.5,-31.5 17.5,-31.5"/>
<polygon fill="#666666" stroke="#666666" points="17.5,-16.5 17.5,-16.5 127.5,-16.5 127.5,-16.5 17.5,-16.5"/>
<polygon fill="none" stroke="#666666" points="17.5,0 17.5,-49 127.5,-49 127.5,0 17.5,0"/>
</a>
</g>
</g>
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="4.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node1 -->
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2&#45;&gt;Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M72.5,-74.77C72.5,-66.03 72.5,-57.09 72.5,-49.27"/>
<polygon fill="none" stroke="#63b8ff" points="69,-74.85 72.5,-84.86 76,-74.86 69,-74.85"/>
</a>
</g>
</g>
</g>
</svg>
</svg>
<style type='text/css'>
<![CDATA[
[data-mouse-over-selected='false'] { opacity: 0.7; }
[data-mouse-over-selected='true'] { opacity: 1.0; }
]]>
</style>
<script type="application/ecmascript"><![CDATA[
document.addEventListener('DOMContentLoaded', (event) => {
highlightEdges();
highlightAdjacentNodes();
});
]]></script>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.42.4 (0)
-->
<!-- Title: DbcAttributeHandler Pages: 1 -->
<svg width="153pt" height="157pt"
viewBox="0.00 0.00 153.00 157.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 153)">
<title>DbcAttributeHandler</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Defer typed attribute statements for resolution.">
<polygon fill="#999999" stroke="transparent" points="127.5,-49 17.5,-49 17.5,0 127.5,0 127.5,-49"/>
<text text-anchor="start" x="22.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcAttributeHandler</text>
<text text-anchor="start" x="70.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="33" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="57.5" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="17.5,-31.5 17.5,-31.5 127.5,-31.5 127.5,-31.5 17.5,-31.5"/>
<polygon fill="#666666" stroke="#666666" points="17.5,-16.5 17.5,-16.5 127.5,-16.5 127.5,-16.5 17.5,-16.5"/>
<polygon fill="none" stroke="#666666" points="17.5,0 17.5,-49 127.5,-49 127.5,0 17.5,0"/>
</a>
</g>
</g>
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="4.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>
<!-- Node2&#45;&gt;Node1 -->
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2&#45;&gt;Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M72.5,-74.77C72.5,-66.03 72.5,-57.09 72.5,-49.27"/>
<polygon fill="none" stroke="#63b8ff" points="69,-74.85 72.5,-84.86 76,-74.86 69,-74.85"/>
</a>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('classDbcCommentHandler.html',''); init
<p>This is the complete list of members for <a class="el" href="classDbcCommentHandler.html">DbcCommentHandler</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Handle</b>(const std::string &amp;line, DbcParseContext &amp;context) const override (defined in <a class="el" href="classDbcCommentHandler.html">DbcCommentHandler</a>)</td><td class="entry"><a class="el" href="classDbcCommentHandler.html">DbcCommentHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcCommentHandler.html#aa4fce77b585a441d251d8535ef7a51a6">Handle</a>(const std::string &amp;line, DbcParseContext &amp;context) const override</td><td class="entry"><a class="el" href="classDbcCommentHandler.html">DbcCommentHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~DbcStatementHandler</b>()=default (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
+15 -4
View File
@@ -96,6 +96,11 @@ $(document).ready(function(){initNavTree('classDbcCommentHandler.html',''); init
<div class="headertitle"><div class="title">DbcCommentHandler Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Defer frame and signal comments for target resolution.
<a href="classDbcCommentHandler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DbcCommentHandler:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
@@ -107,11 +112,13 @@ $(document).ready(function(){initNavTree('classDbcCommentHandler.html',''); init
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa4fce77b585a441d251d8535ef7a51a6" id="r_aa4fce77b585a441d251d8535ef7a51a6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcCommentHandler.html#aa4fce77b585a441d251d8535ef7a51a6">Handle</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const override</td></tr>
<tr class="memdesc:aa4fce77b585a441d251d8535ef7a51a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a trimmed statement using state belonging to this parse. <br /></td></tr>
<tr class="separator:aa4fce77b585a441d251d8535ef7a51a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00066">66</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<div class="textblock"><p>Defer frame and signal comments for target resolution. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00100">100</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aa4fce77b585a441d251d8535ef7a51a6" name="aa4fce77b585a441d251d8535ef7a51a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4fce77b585a441d251d8535ef7a51a6">&#9670;&#160;</a></span>Handle()</h2>
@@ -147,9 +154,13 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>.</p>
<p>Process a trimmed statement using state belonging to this parse. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00367">367</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p>Implements <a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">DbcStatementHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00306">306</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p class="reference">References <a class="el" href="dbc__statement__handler_8h_source.html#l00023">PendingComment::canId</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00027">PendingComment::comment</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00024">PendingComment::isExtended</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00025">PendingComment::isSignal</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00028">PendingComment::lineNumber</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00054">DbcParseContext::lineNumber</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00061">DbcParseContext::pendingComments</a>, and <a class="el" href="dbc__statement__handler_8h_source.html#l00026">PendingComment::signalName</a>.</p>
</div>
</div>
+4
View File
@@ -0,0 +1,4 @@
var classDbcCommentHandler =
[
[ "Handle", "classDbcCommentHandler.html#aa4fce77b585a441d251d8535ef7a51a6", null ]
];
@@ -1,5 +1,5 @@
<map id="DbcCommentHandler" name="DbcCommentHandler">
<area shape="rect" id="Node000001" title=" " alt="" coords="25,139,179,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title=" " alt="" coords="5,5,199,91"/>
<area shape="rect" id="Node000001" title="Defer frame and signal comments for target resolution." alt="" coords="25,139,179,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title="Interface for processing a registered DBC statement." alt="" coords="5,5,199,91"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="105,104,105,138,99,138,99,104"/>
</map>
@@ -1 +1 @@
031e88596ad00375d87ac04af33f405c
d7cb02e7bcef98ad13c50f74b1082d34
@@ -21,7 +21,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Defer frame and signal comments for target resolution.">
<polygon fill="#999999" stroke="transparent" points="130.5,-49 14.5,-49 14.5,0 130.5,0 130.5,-49"/>
<text text-anchor="start" x="19.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcCommentHandler</text>
<text text-anchor="start" x="70.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -36,7 +36,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -44,9 +44,9 @@
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

@@ -11,7 +11,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Defer frame and signal comments for target resolution.">
<polygon fill="#999999" stroke="transparent" points="130.5,-49 14.5,-49 14.5,0 130.5,0 130.5,-49"/>
<text text-anchor="start" x="19.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcCommentHandler</text>
<text text-anchor="start" x="70.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -26,7 +26,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -34,9 +34,9 @@
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

+3 -1
View File
@@ -146,7 +146,9 @@ Public Member Functions</h2></td></tr>
<p class="definition">Definition at line <a class="el" href="dbc__decode__builder_8cpp_source.html#l00015">15</a> of file <a class="el" href="dbc__decode__builder_8cpp_source.html">dbc_decode_builder.cpp</a>.</p>
<p class="reference">References <a class="el" href="decode__database_8h_source.html#l00048">DecodeSignal::byteOrder</a>, <a class="el" href="decode__database_8h_source.html#l00067">DecodeFrame::canId</a>, <a class="el" href="decode__database_8h_source.html#l00057">DecodeSignal::comment</a>, <a class="el" href="decode__database_8h_source.html#l00073">DecodeFrame::comment</a>, <a class="el" href="decode__database_8h_source.html#l00069">DecodeFrame::dlc</a>, <a class="el" href="decode__database_8h_source.html#l00050">DecodeSignal::factor</a>, <a class="el" href="dbc__database_8h_source.html#l00023">DbcDatabase::frames</a>, <a class="el" href="decode__database_8h_source.html#l00071">DecodeFrame::hasPgn</a>, <a class="el" href="decode__database_8h_source.html#l00068">DecodeFrame::isExtended</a>, <a class="el" href="decode__database_8h_source.html#l00047">DecodeSignal::length</a>, <a class="el" href="decode__database_8h_source.html#l00053">DecodeSignal::maximum</a>, <a class="el" href="decode__database_8h_source.html#l00052">DecodeSignal::minimum</a>, <a class="el" href="decode__database_8h_source.html#l00045">DecodeSignal::name</a>, <a class="el" href="decode__database_8h_source.html#l00066">DecodeFrame::name</a>, <a class="el" href="decode__database_8h_source.html#l00051">DecodeSignal::offset</a>, <a class="el" href="decode__database_8h_source.html#l00070">DecodeFrame::pgn</a>, <a class="el" href="decode__database_8h_source.html#l00055">DecodeSignal::receivers</a>, <a class="el" href="decode__database_8h_source.html#l00046">DecodeSignal::startBit</a>, <a class="el" href="decode__database_8h_source.html#l00072">DecodeFrame::transmitter</a>, <a class="el" href="decode__database_8h_source.html#l00054">DecodeSignal::unit</a>, <a class="el" href="decode__database_8h_source.html#l00056">DecodeSignal::valueDescriptions</a>, and <a class="el" href="decode__database_8h_source.html#l00049">DecodeSignal::valueType</a>.</p>
<p class="reference">References <a class="el" href="decode__database_8h_source.html#l00060">DecodeSignal::attributes</a>, <a class="el" href="decode__database_8h_source.html#l00079">DecodeFrame::attributes</a>, <a class="el" href="decode__database_8h_source.html#l00049">DecodeSignal::byteOrder</a>, <a class="el" href="decode__database_8h_source.html#l00070">DecodeFrame::canId</a>, <a class="el" href="decode__database_8h_source.html#l00058">DecodeSignal::comment</a>, <a class="el" href="decode__database_8h_source.html#l00076">DecodeFrame::comment</a>, <a class="el" href="decode__database_8h_source.html#l00081">DecodeFrame::cycleTimeMs</a>, <a class="el" href="decode__database_8h_source.html#l00072">DecodeFrame::dlc</a>, <a class="el" href="decode__database_8h_source.html#l00051">DecodeSignal::factor</a>, <a class="el" href="decode__database_8h_source.html#l00080">DecodeFrame::frameFormat</a>, <a class="el" href="dbc__database_8h_source.html#l00023">DbcDatabase::frames</a>, <a class="el" href="decode__database_8h_source.html#l00074">DecodeFrame::hasPgn</a>, <a class="el" href="decode__database_8h_source.html#l00071">DecodeFrame::isExtended</a>, <a class="el" href="decode__database_8h_source.html#l00048">DecodeSignal::length</a>, <a class="el" href="decode__database_8h_source.html#l00054">DecodeSignal::maximum</a>, <a class="el" href="decode__database_8h_source.html#l00053">DecodeSignal::minimum</a>, <a class="el" href="decode__database_8h_source.html#l00045">DecodeSignal::multiplexing</a>, <a class="el" href="decode__database_8h_source.html#l00046">DecodeSignal::name</a>, <a class="el" href="decode__database_8h_source.html#l00069">DecodeFrame::name</a>, <a class="el" href="decode__database_8h_source.html#l00052">DecodeSignal::offset</a>, <a class="el" href="decode__database_8h_source.html#l00073">DecodeFrame::pgn</a>, <a class="el" href="decode__database_8h_source.html#l00056">DecodeSignal::receivers</a>, <a class="el" href="decode__database_8h_source.html#l00047">DecodeSignal::startBit</a>, <a class="el" href="decode__database_8h_source.html#l00075">DecodeFrame::transmitter</a>, <a class="el" href="decode__database_8h_source.html#l00055">DecodeSignal::unit</a>, <a class="el" href="decode__database_8h_source.html#l00057">DecodeSignal::valueDescriptions</a>, and <a class="el" href="decode__database_8h_source.html#l00050">DecodeSignal::valueType</a>.</p>
<p class="reference">Referenced by <a class="el" href="examples_2main_8cpp_source.html#l00101">main()</a>.</p>
</div>
</div>
+2 -1
View File
@@ -97,7 +97,8 @@ $(document).ready(function(){initNavTree('classDbcDecoder.html',''); initResizab
<p>This is the complete list of members for <a class="el" href="classDbcDecoder.html">DbcDecoder</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">Decode</a>(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const</td><td class="entry"><a class="el" href="classDbcDecoder.html">DbcDecoder</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">FindFrame</a>(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const</td><td class="entry"><a class="el" href="classDbcDecoder.html">DbcDecoder</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcDecoder.html#ade48a94b6fcda6563bd1b2c6ff49439e">Decode</a>(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame, const std::vector&lt; SignalKey &gt; &amp;selection) const</td><td class="entry"><a class="el" href="classDbcDecoder.html">DbcDecoder</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">FindFrame</a>(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const</td><td class="entry"><a class="el" href="classDbcDecoder.html">DbcDecoder</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+56 -11
View File
@@ -106,16 +106,19 @@ $(document).ready(function(){initNavTree('classDbcDecoder.html',''); initResizab
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4005c4311f57b7faf21c0cb31463039c" id="r_a4005c4311f57b7faf21c0cb31463039c"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; const <a class="el" href="structDecodeFrame.html">DecodeFrame</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">FindFrame</a> (const <a class="el" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database, std::uint32_t canId, bool isExtended) const</td></tr>
<tr class="memdesc:a4005c4311f57b7faf21c0cb31463039c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find frame definition by CAN ID. <br /></td></tr>
<tr class="memdesc:a4005c4311f57b7faf21c0cb31463039c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find exact CAN ID first, then unique PGN among explicitly J1939 definitions. <br /></td></tr>
<tr class="separator:a4005c4311f57b7faf21c0cb31463039c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a345951ffe5d943a70d3a1ea1f39e74f7" id="r_a345951ffe5d943a70d3a1ea1f39e74f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDecodedFrameValue.html">DecodedFrameValue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">Decode</a> (const <a class="el" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database, const <a class="el" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame) const</td></tr>
<tr class="memdesc:a345951ffe5d943a70d3a1ea1f39e74f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode one raw CAN frame. <br /></td></tr>
<tr class="separator:a345951ffe5d943a70d3a1ea1f39e74f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade48a94b6fcda6563bd1b2c6ff49439e" id="r_ade48a94b6fcda6563bd1b2c6ff49439e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDecodedFrameValue.html">DecodedFrameValue</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcDecoder.html#ade48a94b6fcda6563bd1b2c6ff49439e">Decode</a> (const <a class="el" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database, const <a class="el" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame, const std::vector&lt; <a class="el" href="structSignalKey.html">SignalKey</a> &gt; &amp;selection) const</td></tr>
<tr class="memdesc:ade48a94b6fcda6563bd1b2c6ff49439e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decode selected signals in selection order using stable keys. An empty selection returns no signals. Multiplex selectors are read internally. Frame status summarizes selected signals; short payload still takes precedence. Unknown/ambiguous frames return before checking the selection. For PGN matches, selection keys must belong to the matched DBC definition. <br /></td></tr>
<tr class="separator:ade48a94b6fcda6563bd1b2c6ff49439e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Runtime CAN decoder using prebuilt decode database. </p>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8h_source.html#l00084">84</a> of file <a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8h_source.html#l00086">86</a> of file <a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a4005c4311f57b7faf21c0cb31463039c" name="a4005c4311f57b7faf21c0cb31463039c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4005c4311f57b7faf21c0cb31463039c">&#9670;&#160;</a></span>FindFrame()</h2>
@@ -149,7 +152,7 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Find frame definition by CAN ID. </p>
<p>Find exact CAN ID first, then unique PGN among explicitly J1939 definitions. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">database</td><td>Runtime decode database. </td></tr>
@@ -158,18 +161,16 @@ Public Member Functions</h2></td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Owning immutable frame handle or nullptr. Safe across reload. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>Owning immutable handle, or nullptr for missing/ambiguous matches. Safe across reload. </dd></dl>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8cpp_source.html#l00017">17</a> of file <a class="el" href="dbc__decoder_8cpp_source.html">dbc_decoder.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8cpp_source.html#l00020">20</a> of file <a class="el" href="dbc__decoder_8cpp_source.html">dbc_decoder.cpp</a>.</p>
<p class="reference">References <a class="el" href="decode__database_8cpp_source.html#l00110">DecodeDatabase::FindFrame()</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__decoder_8cpp_source.html#l00023">Decode()</a>.</p>
<p class="reference">References <a class="el" href="decode__database_8h_source.html#l00093">PgnLookupResult::definition</a>.</p>
</div>
</div>
<a id="a345951ffe5d943a70d3a1ea1f39e74f7" name="a345951ffe5d943a70d3a1ea1f39e74f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a345951ffe5d943a70d3a1ea1f39e74f7">&#9670;&#160;</a></span>Decode()</h2>
<h2 class="memtitle"><span class="permalink"><a href="#a345951ffe5d943a70d3a1ea1f39e74f7">&#9670;&#160;</a></span>Decode() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -204,9 +205,53 @@ Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Decoded frame value. </dd></dl>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8cpp_source.html#l00023">23</a> of file <a class="el" href="dbc__decoder_8cpp_source.html">dbc_decoder.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8cpp_source.html#l00036">36</a> of file <a class="el" href="dbc__decoder_8cpp_source.html">dbc_decoder.cpp</a>.</p>
<p class="reference">References <a class="el" href="dbc__decoder_8h_source.html#l00025">RawCanFrame::canId</a>, <a class="el" href="dbc__decoder_8h_source.html#l00027">RawCanFrame::data</a>, <a class="el" href="dbc__decoder_8h_source.html#l00053">DecodedSignalValue::definition</a>, <a class="el" href="dbc__decoder_8h_source.html#l00072">DecodedFrameValue::definition</a>, <a class="el" href="dbc__decoder_8cpp_source.html#l00017">FindFrame()</a>, <a class="el" href="dbc__decoder_8h_source.html#l00026">RawCanFrame::isExtended</a>, <a class="el" href="dbc__decoder_8h_source.html#l00054">DecodedSignalValue::key</a>, <a class="el" href="dbc__decoder_8h_source.html#l00073">DecodedFrameValue::key</a>, <a class="el" href="dbc__decoder_8h_source.html#l00076">DecodedFrameValue::status</a>, <a class="el" href="dbc__decoder_8h_source.html#l00057">DecodedSignalValue::valid</a>, and <a class="el" href="dbc__decoder_8h_source.html#l00075">DecodedFrameValue::valid</a>.</p>
<p class="reference">Referenced by <a class="el" href="examples_2main_8cpp_source.html#l00101">main()</a>.</p>
</div>
</div>
<a id="ade48a94b6fcda6563bd1b2c6ff49439e" name="ade48a94b6fcda6563bd1b2c6ff49439e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade48a94b6fcda6563bd1b2c6ff49439e">&#9670;&#160;</a></span>Decode() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDecodedFrameValue.html">DecodedFrameValue</a> DbcDecoder::Decode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;&#160;</td>
<td class="paramname"><em>database</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structRawCanFrame.html">RawCanFrame</a> &amp;&#160;</td>
<td class="paramname"><em>frame</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const std::vector&lt; <a class="el" href="structSignalKey.html">SignalKey</a> &gt; &amp;&#160;</td>
<td class="paramname"><em>selection</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Decode selected signals in selection order using stable keys. An empty selection returns no signals. Multiplex selectors are read internally. Frame status summarizes selected signals; short payload still takes precedence. Unknown/ambiguous frames return before checking the selection. For PGN matches, selection keys must belong to the matched DBC definition. </p>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::invalid_argument</td><td>for a foreign frame key, unknown signal, or duplicate key. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8cpp_source.html#l00041">41</a> of file <a class="el" href="dbc__decoder_8cpp_source.html">dbc_decoder.cpp</a>.</p>
</div>
</div>
+2 -1
View File
@@ -1,5 +1,6 @@
var classDbcDecoder =
[
[ "FindFrame", "classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c", null ],
[ "Decode", "classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7", null ]
[ "Decode", "classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7", null ],
[ "Decode", "classDbcDecoder.html#ade48a94b6fcda6563bd1b2c6ff49439e", null ]
];
@@ -96,8 +96,8 @@ $(document).ready(function(){initNavTree('classDbcDiagnosticError.html',''); ini
<p>This is the complete list of members for <a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DbcDiagnosticError</b>(DbcDiagnosticCode code, const std::string &amp;filePath, std::size_t lineNumber, const std::string &amp;message) (defined in <a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a>)</td><td class="entry"><a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>diagnostic</b> (defined in <a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a>)</td><td class="entry"><a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcDiagnosticError.html#aa9997368f79a9a0723481aaeffc44618">DbcDiagnosticError</a>(DbcDiagnosticCode code, const std::string &amp;filePath, std::size_t lineNumber, const std::string &amp;message)</td><td class="entry"><a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcDiagnosticError.html#ab3965082f01d66b6d5c20525af44235d">diagnostic</a></td><td class="entry"><a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+9 -3
View File
@@ -110,6 +110,7 @@ $(document).ready(function(){initNavTree('classDbcDiagnosticError.html',''); ini
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aa9997368f79a9a0723481aaeffc44618" id="r_aa9997368f79a9a0723481aaeffc44618"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcDiagnosticError.html#aa9997368f79a9a0723481aaeffc44618">DbcDiagnosticError</a> (DbcDiagnosticCode code, const std::string &amp;filePath, std::size_t lineNumber, const std::string &amp;message)</td></tr>
<tr class="memdesc:aa9997368f79a9a0723481aaeffc44618"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an exception with a structured source diagnostic. <br /></td></tr>
<tr class="separator:aa9997368f79a9a0723481aaeffc44618"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-attribs" name="pub-attribs"></a>
@@ -120,7 +121,7 @@ Public Attributes</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Carries deferred validation locations without parsing exception text. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00021">21</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00032">32</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aa9997368f79a9a0723481aaeffc44618" name="aa9997368f79a9a0723481aaeffc44618"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9997368f79a9a0723481aaeffc44618">&#9670;&#160;</a></span>DbcDiagnosticError()</h2>
@@ -168,7 +169,9 @@ Public Attributes</h2></td></tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00023">23</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<p>Create an exception with a structured source diagnostic. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00035">35</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div>
</div>
@@ -184,8 +187,11 @@ Public Attributes</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
<p>Structured error accompanying the exception message. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00028">28</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00040">40</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__parser_8cpp_source.html#l00074">DbcParser::ParseFileWithDiagnostics()</a>.</p>
</div>
</div>
+5
View File
@@ -0,0 +1,5 @@
var classDbcDiagnosticError =
[
[ "DbcDiagnosticError", "classDbcDiagnosticError.html#aa9997368f79a9a0723481aaeffc44618", null ],
[ "diagnostic", "classDbcDiagnosticError.html#ab3965082f01d66b6d5c20525af44235d", null ]
];
+1 -1
View File
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('classDbcFrameHandler.html',''); initRe
<p>This is the complete list of members for <a class="el" href="classDbcFrameHandler.html">DbcFrameHandler</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Handle</b>(const std::string &amp;line, DbcParseContext &amp;context) const override (defined in <a class="el" href="classDbcFrameHandler.html">DbcFrameHandler</a>)</td><td class="entry"><a class="el" href="classDbcFrameHandler.html">DbcFrameHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcFrameHandler.html#a0d3f43bbcc5e191460bc31827e74ce89">Handle</a>(const std::string &amp;line, DbcParseContext &amp;context) const override</td><td class="entry"><a class="el" href="classDbcFrameHandler.html">DbcFrameHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~DbcStatementHandler</b>()=default (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
+15 -4
View File
@@ -96,6 +96,11 @@ $(document).ready(function(){initNavTree('classDbcFrameHandler.html',''); initRe
<div class="headertitle"><div class="title">DbcFrameHandler Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Parse and append frame definitions.
<a href="classDbcFrameHandler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DbcFrameHandler:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
@@ -107,11 +112,13 @@ $(document).ready(function(){initNavTree('classDbcFrameHandler.html',''); initRe
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0d3f43bbcc5e191460bc31827e74ce89" id="r_a0d3f43bbcc5e191460bc31827e74ce89"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcFrameHandler.html#a0d3f43bbcc5e191460bc31827e74ce89">Handle</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const override</td></tr>
<tr class="memdesc:a0d3f43bbcc5e191460bc31827e74ce89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a trimmed statement using state belonging to this parse. <br /></td></tr>
<tr class="separator:a0d3f43bbcc5e191460bc31827e74ce89"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00050">50</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<div class="textblock"><p>Parse and append frame definitions. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00082">82</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a0d3f43bbcc5e191460bc31827e74ce89" name="a0d3f43bbcc5e191460bc31827e74ce89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d3f43bbcc5e191460bc31827e74ce89">&#9670;&#160;</a></span>Handle()</h2>
@@ -147,9 +154,13 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>.</p>
<p>Process a trimmed statement using state belonging to this parse. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00343">343</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p>Implements <a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">DbcStatementHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00278">278</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p class="reference">References <a class="el" href="frame__info_8h_source.html#l00027">FrameInfo::canId</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00052">DbcParseContext::currentFrame</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00051">DbcParseContext::database</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00053">DbcParseContext::enableJ1939</a>, <a class="el" href="dbc__database_8h_source.html#l00023">DbcDatabase::frames</a>, <a class="el" href="frame__info_8h_source.html#l00030">FrameInfo::hasPgn</a>, <a class="el" href="frame__info_8h_source.html#l00028">FrameInfo::isExtended</a>, <a class="el" href="frame__info_8h_source.html#l00029">FrameInfo::pgn</a>, and <a class="el" href="dbc__statement__handler_8h_source.html#l00057">DbcParseContext::signalLines</a>.</p>
</div>
</div>
+4
View File
@@ -0,0 +1,4 @@
var classDbcFrameHandler =
[
[ "Handle", "classDbcFrameHandler.html#a0d3f43bbcc5e191460bc31827e74ce89", null ]
];
@@ -1,5 +1,5 @@
<map id="DbcFrameHandler" name="DbcFrameHandler">
<area shape="rect" id="Node000001" title=" " alt="" coords="37,139,167,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title=" " alt="" coords="5,5,199,91"/>
<area shape="rect" id="Node000001" title="Parse and append frame definitions." alt="" coords="37,139,167,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title="Interface for processing a registered DBC statement." alt="" coords="5,5,199,91"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="105,104,105,138,99,138,99,104"/>
</map>
@@ -1 +1 @@
e01f0e1a340a0e632ef160180de2de74
36621640280ca7af3a44ce2ff4cf2cbc
@@ -21,7 +21,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Parse and append frame definitions.">
<polygon fill="#999999" stroke="transparent" points="121.5,-49 23.5,-49 23.5,0 121.5,0 121.5,-49"/>
<text text-anchor="start" x="28.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcFrameHandler</text>
<text text-anchor="start" x="70.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -36,7 +36,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -44,9 +44,9 @@
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

@@ -11,7 +11,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Parse and append frame definitions.">
<polygon fill="#999999" stroke="transparent" points="121.5,-49 23.5,-49 23.5,0 121.5,0 121.5,-49"/>
<text text-anchor="start" x="28.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcFrameHandler</text>
<text text-anchor="start" x="70.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -26,7 +26,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -34,9 +34,9 @@
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

+1 -1
View File
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('classDbcHeaderHandler.html',''); initR
<p>This is the complete list of members for <a class="el" href="classDbcHeaderHandler.html">DbcHeaderHandler</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Handle</b>(const std::string &amp;line, DbcParseContext &amp;context) const override (defined in <a class="el" href="classDbcHeaderHandler.html">DbcHeaderHandler</a>)</td><td class="entry"><a class="el" href="classDbcHeaderHandler.html">DbcHeaderHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcHeaderHandler.html#a1e43a9dcf157f4d4418032d9e9711693">Handle</a>(const std::string &amp;line, DbcParseContext &amp;context) const override</td><td class="entry"><a class="el" href="classDbcHeaderHandler.html">DbcHeaderHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~DbcStatementHandler</b>()=default (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
+6 -3
View File
@@ -109,12 +109,13 @@ $(document).ready(function(){initNavTree('classDbcHeaderHandler.html',''); initR
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a1e43a9dcf157f4d4418032d9e9711693" id="r_a1e43a9dcf157f4d4418032d9e9711693"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcHeaderHandler.html#a1e43a9dcf157f4d4418032d9e9711693">Handle</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const override</td></tr>
<tr class="memdesc:a1e43a9dcf157f4d4418032d9e9711693"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a trimmed statement using state belonging to this parse. <br /></td></tr>
<tr class="separator:a1e43a9dcf157f4d4418032d9e9711693"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Common header metadata does not change the supported decode definitions. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00085">85</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00124">124</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a1e43a9dcf157f4d4418032d9e9711693" name="a1e43a9dcf157f4d4418032d9e9711693"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e43a9dcf157f4d4418032d9e9711693">&#9670;&#160;</a></span>Handle()</h2>
@@ -150,9 +151,11 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>.</p>
<p>Process a trimmed statement using state belonging to this parse. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00386">386</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p>Implements <a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">DbcStatementHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00388">388</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
</div>
</div>
+4
View File
@@ -0,0 +1,4 @@
var classDbcHeaderHandler =
[
[ "Handle", "classDbcHeaderHandler.html#a1e43a9dcf157f4d4418032d9e9711693", null ]
];
@@ -1,5 +1,5 @@
<map id="DbcHeaderHandler" name="DbcHeaderHandler">
<area shape="rect" id="Node000001" title=" " alt="" coords="33,139,171,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title=" " alt="" coords="5,5,199,91"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title="Interface for processing a registered DBC statement." alt="" coords="5,5,199,91"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="105,104,105,138,99,138,99,104"/>
</map>
@@ -1 +1 @@
b906816fb2675b5eef3174ec5bac8679
15305fde8c131f0bcfecbc0683d34546
@@ -36,7 +36,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -44,9 +44,9 @@
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

@@ -26,7 +26,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -34,9 +34,9 @@
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

+3 -2
View File
@@ -96,8 +96,9 @@ $(document).ready(function(){initNavTree('classDbcParser.html',''); initResizabl
<p>This is the complete list of members for <a class="el" href="classDbcParser.html">DbcParser</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">ParseFile</a>(const std::string &amp;filePath) const</td><td class="entry"><a class="el" href="classDbcParser.html">DbcParser</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcParser.html#a0e915ce79c2e3d4c95a5aaf2bf0409bc">ParseFileWithDiagnostics</a>(const std::string &amp;filePath) const</td><td class="entry"><a class="el" href="classDbcParser.html">DbcParser</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcParser.html#a46bc3afcd103e704dc58bb4b073da73c">DbcParser</a>(DbcParserOptions options={})</td><td class="entry"><a class="el" href="classDbcParser.html">DbcParser</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">ParseFile</a>(const std::string &amp;filePath) const</td><td class="entry"><a class="el" href="classDbcParser.html">DbcParser</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcParser.html#a0e915ce79c2e3d4c95a5aaf2bf0409bc">ParseFileWithDiagnostics</a>(const std::string &amp;filePath) const</td><td class="entry"><a class="el" href="classDbcParser.html">DbcParser</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+45 -7
View File
@@ -104,6 +104,9 @@ $(document).ready(function(){initNavTree('classDbcParser.html',''); initResizabl
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a46bc3afcd103e704dc58bb4b073da73c" id="r_a46bc3afcd103e704dc58bb4b073da73c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcParser.html#a46bc3afcd103e704dc58bb4b073da73c">DbcParser</a> (<a class="el" href="structDbcParserOptions.html">DbcParserOptions</a> options={})</td></tr>
<tr class="memdesc:a46bc3afcd103e704dc58bb4b073da73c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a parser with explicit extended-frame interpretation options. <br /></td></tr>
<tr class="separator:a46bc3afcd103e704dc58bb4b073da73c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef72826942c9095d653fafa435855e56" id="r_aef72826942c9095d653fafa435855e56"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDbcDatabase.html">DbcDatabase</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">ParseFile</a> (const std::string &amp;filePath) const</td></tr>
<tr class="memdesc:aef72826942c9095d653fafa435855e56"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse DBC file. <br /></td></tr>
<tr class="separator:aef72826942c9095d653fafa435855e56"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -120,11 +123,44 @@ Public Member Functions</h2></td></tr>
<li>CM_ SG_</li>
<li>basic M / mN multiplexing</li>
<li>VAL_ signal value descriptions</li>
<li>BA_DEF_, BA_DEF_DEF_, BA_ typed attributes, frame format and cycle time</li>
</ul>
<p>Frame/signal comments support multiline quoted text and deferred references.</p>
<p>Reports unsupported statements as warnings, except SG_MUL_VAL_ which is an error. VERSION, NS_, BS_, BU_ and NS_ symbol declarations stay quiet. </p>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8h_source.html#l00033">33</a> of file <a class="el" href="dbc__parser_8h_source.html">dbc_parser.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8h_source.html#l00041">41</a> of file <a class="el" href="dbc__parser_8h_source.html">dbc_parser.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a46bc3afcd103e704dc58bb4b073da73c" name="a46bc3afcd103e704dc58bb4b073da73c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46bc3afcd103e704dc58bb4b073da73c">&#9670;&#160;</a></span>DbcParser()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">DbcParser::DbcParser </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structDbcParserOptions.html">DbcParserOptions</a>&#160;</td>
<td class="paramname"><em>options</em> = <code>{}</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create a parser with explicit extended-frame interpretation options. </p>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8h_source.html#l00044">44</a> of file <a class="el" href="dbc__parser_8h_source.html">dbc_parser.h</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aef72826942c9095d653fafa435855e56" name="aef72826942c9095d653fafa435855e56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef72826942c9095d653fafa435855e56">&#9670;&#160;</a></span>ParseFile()</h2>
@@ -156,9 +192,11 @@ Public Member Functions</h2></td></tr>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8cpp_source.html#l00031">31</a> of file <a class="el" href="dbc__parser_8cpp_source.html">dbc_parser.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8cpp_source.html#l00061">61</a> of file <a class="el" href="dbc__parser_8cpp_source.html">dbc_parser.cpp</a>.</p>
<p class="reference">References <a class="el" href="dbc__parser_8cpp_source.html#l00044">ParseFileWithDiagnostics()</a>.</p>
<p class="reference">References <a class="el" href="dbc__diagnostic_8h_source.html#l00039">DbcParseResult::database</a>, <a class="el" href="dbc__diagnostic_8h_source.html#l00040">DbcParseResult::diagnostics</a>, and <a class="el" href="dbc__parser_8cpp_source.html#l00074">ParseFileWithDiagnostics()</a>.</p>
<p class="reference">Referenced by <a class="el" href="examples_2main_8cpp_source.html#l00101">main()</a>.</p>
</div>
</div>
@@ -181,11 +219,11 @@ Public Member Functions</h2></td></tr>
<p>Parse with warnings and a structured first error instead of throwing. </p>
<dl class="section return"><dt>Returns</dt><dd>Valid database with diagnostics; empty database on error. File errors use line zero; statement errors use physical one-based lines. Warnings indicate ignored syntax and possible incomplete decoding. </dd></dl>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8cpp_source.html#l00044">44</a> of file <a class="el" href="dbc__parser_8cpp_source.html">dbc_parser.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8cpp_source.html#l00074">74</a> of file <a class="el" href="dbc__parser_8cpp_source.html">dbc_parser.cpp</a>.</p>
<p class="reference">References <a class="el" href="dbc__statement__handler_8cpp_source.html#l00388">DbcStatementDispatcher::Dispatch()</a>.</p>
<p class="reference">References <a class="el" href="dbc__diagnostic_8h_source.html#l00039">DbcParseResult::database</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00040">DbcDiagnosticError::diagnostic</a>, <a class="el" href="dbc__diagnostic_8h_source.html#l00040">DbcParseResult::diagnostics</a>, <a class="el" href="dbc__statement__handler_8cpp_source.html#l00390">DbcStatementDispatcher::Dispatch()</a>, and <a class="el" href="dbc__parser_8h_source.html#l00021">DbcParserOptions::enableJ1939</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__parser_8cpp_source.html#l00031">ParseFile()</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__parser_8cpp_source.html#l00061">ParseFile()</a>.</p>
</div>
</div>
+1
View File
@@ -1,5 +1,6 @@
var classDbcParser =
[
[ "DbcParser", "classDbcParser.html#a46bc3afcd103e704dc58bb4b073da73c", null ],
[ "ParseFile", "classDbcParser.html#aef72826942c9095d653fafa435855e56", null ],
[ "ParseFileWithDiagnostics", "classDbcParser.html#a0e915ce79c2e3d4c95a5aaf2bf0409bc", null ]
];
+1 -1
View File
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('classDbcSignalHandler.html',''); initR
<p>This is the complete list of members for <a class="el" href="classDbcSignalHandler.html">DbcSignalHandler</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Handle</b>(const std::string &amp;line, DbcParseContext &amp;context) const override (defined in <a class="el" href="classDbcSignalHandler.html">DbcSignalHandler</a>)</td><td class="entry"><a class="el" href="classDbcSignalHandler.html">DbcSignalHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcSignalHandler.html#ad7d891ec1414fb645f85ccd410f2737b">Handle</a>(const std::string &amp;line, DbcParseContext &amp;context) const override</td><td class="entry"><a class="el" href="classDbcSignalHandler.html">DbcSignalHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~DbcStatementHandler</b>()=default (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
+15 -4
View File
@@ -96,6 +96,11 @@ $(document).ready(function(){initNavTree('classDbcSignalHandler.html',''); initR
<div class="headertitle"><div class="title">DbcSignalHandler Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Parse and append signals to the current frame.
<a href="classDbcSignalHandler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DbcSignalHandler:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
@@ -107,11 +112,13 @@ $(document).ready(function(){initNavTree('classDbcSignalHandler.html',''); initR
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad7d891ec1414fb645f85ccd410f2737b" id="r_ad7d891ec1414fb645f85ccd410f2737b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcSignalHandler.html#ad7d891ec1414fb645f85ccd410f2737b">Handle</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const override</td></tr>
<tr class="memdesc:ad7d891ec1414fb645f85ccd410f2737b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a trimmed statement using state belonging to this parse. <br /></td></tr>
<tr class="separator:ad7d891ec1414fb645f85ccd410f2737b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00058">58</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<div class="textblock"><p>Parse and append signals to the current frame. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00091">91</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ad7d891ec1414fb645f85ccd410f2737b" name="ad7d891ec1414fb645f85ccd410f2737b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7d891ec1414fb645f85ccd410f2737b">&#9670;&#160;</a></span>Handle()</h2>
@@ -147,9 +154,13 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>.</p>
<p>Process a trimmed statement using state belonging to this parse. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00353">353</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p>Implements <a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">DbcStatementHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00292">292</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p class="reference">References <a class="el" href="dbc__statement__handler_8h_source.html#l00052">DbcParseContext::currentFrame</a>, <a class="el" href="frame__info_8h_source.html#l00031">FrameInfo::dlc</a>, <a class="el" href="signal__info_8h_source.html#l00030">SignalInfo::isLittleEndian</a>, <a class="el" href="signal__info_8h_source.html#l00029">SignalInfo::length</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00054">DbcParseContext::lineNumber</a>, <a class="el" href="frame__info_8h_source.html#l00026">FrameInfo::name</a>, <a class="el" href="signal__info_8h_source.html#l00027">SignalInfo::name</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00057">DbcParseContext::signalLines</a>, and <a class="el" href="signal__info_8h_source.html#l00028">SignalInfo::startBit</a>.</p>
</div>
</div>
+4
View File
@@ -0,0 +1,4 @@
var classDbcSignalHandler =
[
[ "Handle", "classDbcSignalHandler.html#ad7d891ec1414fb645f85ccd410f2737b", null ]
];
@@ -1,5 +1,5 @@
<map id="DbcSignalHandler" name="DbcSignalHandler">
<area shape="rect" id="Node000001" title=" " alt="" coords="37,139,167,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title=" " alt="" coords="5,5,199,91"/>
<area shape="rect" id="Node000001" title="Parse and append signals to the current frame." alt="" coords="37,139,167,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title="Interface for processing a registered DBC statement." alt="" coords="5,5,199,91"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="105,104,105,138,99,138,99,104"/>
</map>
@@ -1 +1 @@
9f75986e6e276d126dcdd20bd25bc7f7
9136d07e129dc3d98f2aa00d947443d5
@@ -21,7 +21,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Parse and append signals to the current frame.">
<polygon fill="#999999" stroke="transparent" points="121.5,-49 23.5,-49 23.5,0 121.5,0 121.5,-49"/>
<text text-anchor="start" x="28.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcSignalHandler</text>
<text text-anchor="start" x="70.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -36,7 +36,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -44,9 +44,9 @@
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

@@ -11,7 +11,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Parse and append signals to the current frame.">
<polygon fill="#999999" stroke="transparent" points="121.5,-49 23.5,-49 23.5,0 121.5,0 121.5,-49"/>
<text text-anchor="start" x="28.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcSignalHandler</text>
<text text-anchor="start" x="70.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -26,7 +26,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="145,-149 0,-149 0,-85 145,-85 145,-149"/>
<text text-anchor="start" x="18.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="71" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -34,9 +34,9 @@
<text text-anchor="start" x="17.5" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="4.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17.5" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-132 0.5,-132 145.5,-132 145.5,-132 0.5,-132"/>
<polygon fill="#666666" stroke="#666666" points="0.5,-117 0.5,-117 145.5,-117 145.5,-117 0.5,-117"/>
<polygon fill="none" stroke="#666666" points="0,-85 0,-149 145,-149 145,-85 0,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

@@ -96,9 +96,9 @@ $(document).ready(function(){initNavTree('classDbcStatementDispatcher.html','');
<p>This is the complete list of members for <a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DbcStatementDispatcher</b>() (defined in <a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a>)</td><td class="entry"><a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcStatementDispatcher.html#a2f064359b59d8644b8a8196653d47482">DbcStatementDispatcher</a>()</td><td class="entry"><a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcStatementDispatcher.html#a495c2d5c7ebb8103b1987cdd87c142ed">Dispatch</a>(const std::string &amp;line, DbcParseContext &amp;context) const</td><td class="entry"><a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>RegisterType</b>(const std::string &amp;keyword) (defined in <a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a>)</td><td class="entry"><a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcStatementDispatcher.html#a2c6e9a614ed747275d43bcccc50d0b2d">RegisterType</a>(const std::string &amp;keyword)</td><td class="entry"><a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+15 -5
View File
@@ -101,8 +101,12 @@ $(document).ready(function(){initNavTree('classDbcStatementDispatcher.html','');
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a2f064359b59d8644b8a8196653d47482" id="r_a2f064359b59d8644b8a8196653d47482"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcStatementDispatcher.html#a2f064359b59d8644b8a8196653d47482">DbcStatementDispatcher</a> ()</td></tr>
<tr class="memdesc:a2f064359b59d8644b8a8196653d47482"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register supported statement handlers through <a class="el" href="classTypeFactory.html" title="Registry-based factory for creating objects by runtime identifier.">TypeFactory</a>. <br /></td></tr>
<tr class="separator:a2f064359b59d8644b8a8196653d47482"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c6e9a614ed747275d43bcccc50d0b2d" id="r_a2c6e9a614ed747275d43bcccc50d0b2d"><td class="memTemplParams" colspan="2">template&lt;class Handler &gt; </td></tr>
<tr class="memitem:a2c6e9a614ed747275d43bcccc50d0b2d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classDbcStatementDispatcher.html#a2c6e9a614ed747275d43bcccc50d0b2d">RegisterType</a> (const std::string &amp;keyword)</td></tr>
<tr class="memdesc:a2c6e9a614ed747275d43bcccc50d0b2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Register or replace a handler and create its reusable instance. <br /></td></tr>
<tr class="separator:a2c6e9a614ed747275d43bcccc50d0b2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a495c2d5c7ebb8103b1987cdd87c142ed" id="r_a495c2d5c7ebb8103b1987cdd87c142ed"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcStatementDispatcher.html#a495c2d5c7ebb8103b1987cdd87c142ed">Dispatch</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const</td></tr>
<tr class="separator:a495c2d5c7ebb8103b1987cdd87c142ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -110,7 +114,7 @@ Public Member Functions</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Exact-key dispatch to handlers created once per registration via <a class="el" href="classTypeFactory.html" title="Registry-based factory for creating objects by runtime identifier.">TypeFactory</a>. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00091">91</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00130">130</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a2f064359b59d8644b8a8196653d47482" name="a2f064359b59d8644b8a8196653d47482"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f064359b59d8644b8a8196653d47482">&#9670;&#160;</a></span>DbcStatementDispatcher()</h2>
@@ -127,7 +131,9 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00371">371</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p>Register supported statement handlers through <a class="el" href="classTypeFactory.html" title="Registry-based factory for creating objects by runtime identifier.">TypeFactory</a>. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00370">370</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
</div>
</div>
@@ -158,7 +164,11 @@ template&lt;class Handler &gt; </div>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00096">96</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<p>Register or replace a handler and create its reusable instance. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00137">137</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<p class="reference">References <a class="el" href="typefactory_8h_source.html#l00099">TypeFactory&lt; ClassId, BaseClass, Args &gt;::create()</a>, and <a class="el" href="typefactory_8h_source.html#l00078">TypeFactory&lt; ClassId, BaseClass, Args &gt;::registerType()</a>.</p>
</div>
</div>
@@ -189,9 +199,9 @@ template&lt;class Handler &gt; </div>
</div><div class="memdoc">
<p>Returns false for an unregistered keyword; input must be trimmed. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00388">388</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00390">390</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__parser_8cpp_source.html#l00044">DbcParser::ParseFileWithDiagnostics()</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__parser_8cpp_source.html#l00074">DbcParser::ParseFileWithDiagnostics()</a>.</p>
</div>
</div>
+2
View File
@@ -1,4 +1,6 @@
var classDbcStatementDispatcher =
[
[ "DbcStatementDispatcher", "classDbcStatementDispatcher.html#a2f064359b59d8644b8a8196653d47482", null ],
[ "RegisterType", "classDbcStatementDispatcher.html#a2c6e9a614ed747275d43bcccc50d0b2d", null ],
[ "Dispatch", "classDbcStatementDispatcher.html#a495c2d5c7ebb8103b1987cdd87c142ed", null ]
];
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('classDbcStatementHandler.html',''); in
<p>This is the complete list of members for <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Handle</b>(const std::string &amp;line, DbcParseContext &amp;context) const =0 (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">Handle</a>(const std::string &amp;line, DbcParseContext &amp;context) const =0</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~DbcStatementHandler</b>()=default (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
+52 -5
View File
@@ -96,6 +96,11 @@ $(document).ready(function(){initNavTree('classDbcStatementHandler.html',''); in
<div class="headertitle"><div class="title">DbcStatementHandler Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
</div><!--header-->
<div class="contents">
<p>Interface for processing a registered DBC statement.
<a href="classDbcStatementHandler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DbcStatementHandler:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
@@ -106,14 +111,56 @@ $(document).ready(function(){initNavTree('classDbcStatementHandler.html',''); in
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3de86e1e27e9bcb0fe6f1460a8ba5739" id="r_a3de86e1e27e9bcb0fe6f1460a8ba5739"><td class="memItemLeft" align="right" valign="top"><a id="a3de86e1e27e9bcb0fe6f1460a8ba5739" name="a3de86e1e27e9bcb0fe6f1460a8ba5739"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>Handle</b> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const =0</td></tr>
<tr class="memitem:a3de86e1e27e9bcb0fe6f1460a8ba5739" id="r_a3de86e1e27e9bcb0fe6f1460a8ba5739"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">Handle</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const =0</td></tr>
<tr class="memdesc:a3de86e1e27e9bcb0fe6f1460a8ba5739"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a trimmed statement using state belonging to this parse. <br /></td></tr>
<tr class="separator:a3de86e1e27e9bcb0fe6f1460a8ba5739"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00044">44</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<div class="textblock"><p>Interface for processing a registered DBC statement. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00074">74</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a3de86e1e27e9bcb0fe6f1460a8ba5739" name="a3de86e1e27e9bcb0fe6f1460a8ba5739"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3de86e1e27e9bcb0fe6f1460a8ba5739">&#9670;&#160;</a></span>Handle()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">virtual void DbcStatementHandler::Handle </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>line</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;&#160;</td>
<td class="paramname"><em>context</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Process a trimmed statement using state belonging to this parse. </p>
<p>Implemented in <a class="el" href="classDbcFrameHandler.html#a0d3f43bbcc5e191460bc31827e74ce89">DbcFrameHandler</a>, <a class="el" href="classDbcSignalHandler.html#ad7d891ec1414fb645f85ccd410f2737b">DbcSignalHandler</a>, <a class="el" href="classDbcCommentHandler.html#aa4fce77b585a441d251d8535ef7a51a6">DbcCommentHandler</a>, <a class="el" href="classDbcAttributeHandler.html#a397f23259b7ff79abb4b5141489caa83">DbcAttributeHandler</a>, <a class="el" href="classDbcValueDescriptionHandler.html#a653e13364f396b54244edc2c0fdd831a">DbcValueDescriptionHandler</a>, <a class="el" href="classDbcUnsupportedMultiplexingHandler.html#a9853fd67465f92ef587792986ea179ac">DbcUnsupportedMultiplexingHandler</a>, and <a class="el" href="classDbcHeaderHandler.html#a1e43a9dcf157f4d4418032d9e9711693">DbcHeaderHandler</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a></li>
</ul>
</div><!-- contents -->
+4
View File
@@ -0,0 +1,4 @@
var classDbcStatementHandler =
[
[ "Handle", "classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739", null ]
];
@@ -1,17 +1,19 @@
<map id="DbcStatementHandler" name="DbcStatementHandler">
<area shape="rect" id="Node000001" title=" " alt="" coords="484,5,677,91"/>
<area shape="rect" id="Node000001" title="Interface for processing a registered DBC statement." alt="" coords="575,5,768,91"/>
<area shape="rect" id="Node000002" title=" " alt="" coords="5,139,153,244"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="471,66,324,94,244,115,167,141,155,146,153,141,165,136,243,110,323,89,470,61"/>
<area shape="rect" id="Node000003" href="$classDbcCommentHandler.html" title=" " alt="" coords="178,159,333,224"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="472,89,346,141,308,161,306,156,344,136,470,84"/>
<area shape="rect" id="Node000004" href="$classDbcFrameHandler.html" title=" " alt="" coords="357,159,487,224"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="525,102,460,160,456,156,522,98"/>
<area shape="rect" id="Node000005" href="$classDbcHeaderHandler.html" title=" " alt="" coords="512,159,649,224"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="583,104,583,158,578,158,578,104"/>
<area shape="rect" id="Node000006" href="$classDbcSignalHandler.html" title=" " alt="" coords="674,159,805,224"/>
<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="640,98,705,156,702,160,636,102"/>
<area shape="rect" id="Node000007" href="$classDbcUnsupportedMultiplexingHandler.html" title=" " alt="" coords="829,151,1031,231"/>
<area shape="poly" id="edge6_Node000001_Node000007" title=" " alt="" coords="691,87,818,136,847,149,845,154,816,141,689,92"/>
<area shape="rect" id="Node000008" href="$classDbcValueDescriptionHandler.html" title=" " alt="" coords="1055,159,1255,224"/>
<area shape="poly" id="edge7_Node000001_Node000008" title=" " alt="" coords="692,60,859,89,953,110,1044,136,1095,156,1093,161,1042,141,951,115,858,94,691,66"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="561,60,474,70,374,86,269,110,167,141,155,146,153,141,165,136,267,104,373,81,473,65,561,55"/>
<area shape="rect" id="Node000003" href="$classDbcAttributeHandler.html" title="Defer typed attribute statements for resolution." alt="" coords="178,159,325,224"/>
<area shape="poly" id="edge2_Node000001_Node000003" title=" " alt="" coords="562,73,452,101,338,141,300,161,297,156,336,136,450,96,561,68"/>
<area shape="rect" id="Node000004" href="$classDbcCommentHandler.html" title="Defer frame and signal comments for target resolution." alt="" coords="349,159,503,224"/>
<area shape="poly" id="edge3_Node000001_Node000004" title=" " alt="" coords="588,100,517,141,482,161,479,156,514,136,586,95"/>
<area shape="rect" id="Node000005" href="$classDbcFrameHandler.html" title="Parse and append frame definitions." alt="" coords="527,159,658,224"/>
<area shape="poly" id="edge4_Node000001_Node000005" title=" " alt="" coords="644,104,613,160,608,157,639,101"/>
<area shape="rect" id="Node000006" href="$classDbcHeaderHandler.html" title=" " alt="" coords="683,159,820,224"/>
<area shape="poly" id="edge5_Node000001_Node000006" title=" " alt="" coords="704,101,736,157,731,160,699,104"/>
<area shape="rect" id="Node000007" href="$classDbcSignalHandler.html" title="Parse and append signals to the current frame." alt="" coords="845,159,975,224"/>
<area shape="poly" id="edge6_Node000001_Node000007" title=" " alt="" coords="763,95,834,136,865,156,862,161,831,141,760,100"/>
<area shape="rect" id="Node000008" href="$classDbcUnsupportedMultiplexingHandler.html" title="Reject unsupported extended multiplexing statements." alt="" coords="999,151,1202,231"/>
<area shape="poly" id="edge7_Node000001_Node000008" title=" " alt="" coords="782,74,883,102,988,136,1020,149,1018,154,986,141,881,107,781,79"/>
<area shape="rect" id="Node000009" href="$classDbcValueDescriptionHandler.html" title="Defer raw value descriptions for target resolution." alt="" coords="1226,159,1426,224"/>
<area shape="poly" id="edge8_Node000001_Node000009" title=" " alt="" coords="782,56,985,84,1101,106,1215,136,1266,156,1264,161,1213,141,1100,112,984,89,781,61"/>
</map>
@@ -1 +1 @@
9968b812b5276c7cad7a358f5120f96a
5f027bd277d1b10d4e4195710b2631a3
@@ -46,7 +46,7 @@
</g>
</defs>
<script type="application/ecmascript">
var viewWidth = 946;
var viewWidth = 1074;
var viewHeight = 187;
var sectionId = 'dynsection-0';
</script>
@@ -57,17 +57,17 @@ var sectionId = 'dynsection-0';
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<polygon fill="#999999" stroke="transparent" points="504,-179 359,-179 359,-115 504,-115 504,-179"/>
<text text-anchor="start" x="377.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="430" y="-152" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="363.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="376.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="363.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="376.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="359.5,-162 359.5,-162 504.5,-162 504.5,-162 359.5,-162"/>
<polygon fill="#666666" stroke="#666666" points="359.5,-147 359.5,-147 504.5,-147 504.5,-147 359.5,-147"/>
<polygon fill="none" stroke="#666666" points="359,-115 359,-179 504,-179 504,-115 359,-115"/>
<g id="a_Node000001"><a xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="#999999" stroke="transparent" points="572,-179 427,-179 427,-115 572,-115 572,-179"/>
<text text-anchor="start" x="445.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="498" y="-152" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="431.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="444.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="431.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="444.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="427.5,-162 427.5,-162 572.5,-162 572.5,-162 427.5,-162"/>
<polygon fill="#666666" stroke="#666666" points="427.5,-147 427.5,-147 572.5,-147 572.5,-147 427.5,-147"/>
<polygon fill="none" stroke="#666666" points="427,-115 427,-179 572,-179 572,-115 427,-115"/>
</a>
</g>
</g>
@@ -96,23 +96,23 @@ var sectionId = 'dynsection-0';
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M348.84,-135.61C284.93,-125.83 195.06,-108.22 120.5,-79 117.45,-77.8 114.37,-76.47 111.3,-75.05"/>
<polygon fill="none" stroke="#63b8ff" points="348.46,-139.1 358.87,-137.12 349.5,-132.17 348.46,-139.1"/>
<path fill="none" stroke="#63b8ff" d="M416.64,-139.97C338.33,-132.28 218.54,-115.33 120.5,-79 117.43,-77.86 114.33,-76.58 111.25,-75.19"/>
<polygon fill="none" stroke="#63b8ff" points="416.65,-143.48 426.94,-140.95 417.31,-136.51 416.65,-143.48"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:href="classDbcCommentHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="245.5,-64 129.5,-64 129.5,-15 245.5,-15 245.5,-64"/>
<text text-anchor="start" x="134.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcCommentHandler</text>
<text text-anchor="start" x="185.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="146.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="172.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="129.5,-46.5 129.5,-46.5 245.5,-46.5 245.5,-46.5 129.5,-46.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="129.5,-31.5 129.5,-31.5 245.5,-31.5 245.5,-31.5 129.5,-31.5"/>
<polygon fill="none" stroke="#bfbfbf" points="129.5,-15 129.5,-64 245.5,-64 245.5,-15 129.5,-15"/>
<g id="a_Node000003"><a xlink:href="classDbcAttributeHandler.html" target="_top" xlink:title="Defer typed attribute statements for resolution.">
<polygon fill="white" stroke="transparent" points="239.5,-64 129.5,-64 129.5,-15 239.5,-15 239.5,-64"/>
<text text-anchor="start" x="134.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcAttributeHandler</text>
<text text-anchor="start" x="182.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="145" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="169.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="129.5,-46.5 129.5,-46.5 239.5,-46.5 239.5,-46.5 129.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="129.5,-31.5 129.5,-31.5 239.5,-31.5 239.5,-31.5 129.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="129.5,-15 129.5,-64 239.5,-64 239.5,-15 129.5,-15"/>
</a>
</g>
</g>
@@ -120,23 +120,23 @@ var sectionId = 'dynsection-0';
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M349.27,-117.98C319.03,-106.86 284.79,-93.32 254.5,-79 245.16,-74.58 235.38,-69.34 226.26,-64.17"/>
<polygon fill="none" stroke="#63b8ff" points="348.34,-121.36 358.93,-121.5 350.74,-114.79 348.34,-121.36"/>
<path fill="none" stroke="#63b8ff" d="M417.06,-130.13C367.13,-119.02 302.8,-102.04 248.5,-79 238.83,-74.9 228.87,-69.54 219.78,-64.13"/>
<polygon fill="none" stroke="#63b8ff" points="416.34,-133.55 426.85,-132.27 417.83,-126.71 416.34,-133.55"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="classDbcFrameHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="361.5,-64 263.5,-64 263.5,-15 361.5,-15 361.5,-64"/>
<text text-anchor="start" x="268.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcFrameHandler</text>
<text text-anchor="start" x="310.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="276" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="297.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="263.5,-46.5 263.5,-46.5 361.5,-46.5 361.5,-46.5 263.5,-46.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="263.5,-31.5 263.5,-31.5 361.5,-31.5 361.5,-31.5 263.5,-31.5"/>
<polygon fill="none" stroke="#bfbfbf" points="263.5,-15 263.5,-64 361.5,-64 361.5,-15 263.5,-15"/>
<g id="a_Node000004"><a xlink:href="classDbcCommentHandler.html" target="_top" xlink:title="Defer frame and signal comments for target resolution.">
<polygon fill="white" stroke="transparent" points="373.5,-64 257.5,-64 257.5,-15 373.5,-15 373.5,-64"/>
<text text-anchor="start" x="262.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcCommentHandler</text>
<text text-anchor="start" x="313.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="274.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="300.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="257.5,-46.5 257.5,-46.5 373.5,-46.5 373.5,-46.5 257.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="257.5,-31.5 257.5,-31.5 373.5,-31.5 373.5,-31.5 257.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="257.5,-15 257.5,-64 373.5,-64 373.5,-15 257.5,-15"/>
</a>
</g>
</g>
@@ -144,23 +144,23 @@ var sectionId = 'dynsection-0';
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M388.55,-107.92C372.13,-93.37 353.89,-77.19 339.38,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="386.64,-110.9 396.44,-114.92 391.28,-105.66 386.64,-110.9"/>
<path fill="none" stroke="#63b8ff" d="M436.35,-109.86C418.9,-99.87 399.96,-89.02 382.5,-79 374.12,-74.19 365.16,-69.05 356.6,-64.13"/>
<polygon fill="none" stroke="#63b8ff" points="434.9,-113.06 445.32,-114.99 438.38,-106.99 434.9,-113.06"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:href="classDbcHeaderHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="483,-64 380,-64 380,-15 483,-15 483,-64"/>
<text text-anchor="start" x="385.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcHeaderHandler</text>
<text text-anchor="start" x="430" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="394" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="416.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="380.5,-46.5 380.5,-46.5 483.5,-46.5 483.5,-46.5 380.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="380.5,-31.5 380.5,-31.5 483.5,-31.5 483.5,-31.5 380.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="380,-15 380,-64 483,-64 483,-15 380,-15"/>
<g id="a_Node000005"><a xlink:href="classDbcFrameHandler.html" target="_top" xlink:title="Parse and append frame definitions.">
<polygon fill="white" stroke="transparent" points="489.5,-64 391.5,-64 391.5,-15 489.5,-15 489.5,-64"/>
<text text-anchor="start" x="396.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcFrameHandler</text>
<text text-anchor="start" x="438.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="404" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="425.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="391.5,-46.5 391.5,-46.5 489.5,-46.5 489.5,-46.5 391.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="391.5,-31.5 391.5,-31.5 489.5,-31.5 489.5,-31.5 391.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="391.5,-15 391.5,-64 489.5,-64 489.5,-15 391.5,-15"/>
</a>
</g>
</g>
@@ -168,23 +168,23 @@ var sectionId = 'dynsection-0';
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M431.5,-104.72C431.5,-91.03 431.5,-76.26 431.5,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="428,-104.92 431.5,-114.92 435,-104.92 428,-104.92"/>
<path fill="none" stroke="#63b8ff" d="M477.09,-105.93C469.25,-91.9 460.69,-76.61 453.83,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="474.18,-107.9 482.12,-114.92 480.29,-104.48 474.18,-107.9"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="classDbcSignalHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="599.5,-64 501.5,-64 501.5,-15 599.5,-15 599.5,-64"/>
<text text-anchor="start" x="506.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcSignalHandler</text>
<text text-anchor="start" x="548.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="514" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="535.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="501.5,-46.5 501.5,-46.5 599.5,-46.5 599.5,-46.5 501.5,-46.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="501.5,-31.5 501.5,-31.5 599.5,-31.5 599.5,-31.5 501.5,-31.5"/>
<polygon fill="none" stroke="#bfbfbf" points="501.5,-15 501.5,-64 599.5,-64 599.5,-15 501.5,-15"/>
<g id="a_Node000006"><a xlink:href="classDbcHeaderHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="611,-64 508,-64 508,-15 611,-15 611,-64"/>
<text text-anchor="start" x="513.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcHeaderHandler</text>
<text text-anchor="start" x="558" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="522" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="544.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="508.5,-46.5 508.5,-46.5 611.5,-46.5 611.5,-46.5 508.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="508.5,-31.5 508.5,-31.5 611.5,-31.5 611.5,-31.5 508.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="508,-15 508,-64 611,-64 611,-15 508,-15"/>
</a>
</g>
</g>
@@ -192,24 +192,23 @@ var sectionId = 'dynsection-0';
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M474.45,-107.92C490.87,-93.37 509.11,-77.19 523.62,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="471.72,-105.66 466.56,-114.92 476.36,-110.9 471.72,-105.66"/>
<path fill="none" stroke="#63b8ff" d="M522.29,-105.93C530.27,-91.9 538.97,-76.61 545.95,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="519.08,-104.49 517.18,-114.92 525.16,-107.95 519.08,-104.49"/>
</a>
</g>
</g>
<!-- Node7 -->
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_Node000007"><a xlink:href="classDbcUnsupportedMultiplexingHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="769.5,-69.5 617.5,-69.5 617.5,-9.5 769.5,-9.5 769.5,-69.5"/>
<text text-anchor="start" x="622.5" y="-57.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcUnsupportedMultiplexing</text>
<text text-anchor="start" x="674" y="-46.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handler</text>
<text text-anchor="start" x="691.5" y="-31.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="643.5" y="-16.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="678.5" y="-16.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="617.5,-41.5 617.5,-41.5 769.5,-41.5 769.5,-41.5 617.5,-41.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="617.5,-26.5 617.5,-26.5 769.5,-26.5 769.5,-26.5 617.5,-26.5"/>
<polygon fill="none" stroke="#bfbfbf" points="617.5,-9.5 617.5,-69.5 769.5,-69.5 769.5,-9.5 617.5,-9.5"/>
<g id="a_Node000007"><a xlink:href="classDbcSignalHandler.html" target="_top" xlink:title="Parse and append signals to the current frame.">
<polygon fill="white" stroke="transparent" points="727.5,-64 629.5,-64 629.5,-15 727.5,-15 727.5,-64"/>
<text text-anchor="start" x="634.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcSignalHandler</text>
<text text-anchor="start" x="676.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="642" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="663.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="629.5,-46.5 629.5,-46.5 727.5,-46.5 727.5,-46.5 629.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="629.5,-31.5 629.5,-31.5 727.5,-31.5 727.5,-31.5 629.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="629.5,-15 629.5,-64 727.5,-64 727.5,-15 629.5,-15"/>
</a>
</g>
</g>
@@ -217,23 +216,24 @@ var sectionId = 'dynsection-0';
<g id="edge6_Node000001_Node000007" class="edge">
<title>Node1&#45;&gt;Node7</title>
<g id="a_edge6_Node000001_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M513.82,-116.07C543.79,-104.86 577.83,-91.73 608.5,-79 615.68,-76.02 623.16,-72.8 630.57,-69.54"/>
<polygon fill="none" stroke="#63b8ff" points="512.39,-112.87 504.25,-119.65 514.84,-119.43 512.39,-112.87"/>
<path fill="none" stroke="#63b8ff" d="M566.97,-109.9C584.55,-100.14 603.37,-89.4 620.5,-79 628.14,-74.36 636.22,-69.18 643.83,-64.17"/>
<polygon fill="none" stroke="#63b8ff" points="564.96,-107 557.9,-114.9 568.34,-113.13 564.96,-107"/>
</a>
</g>
</g>
<!-- Node8 -->
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_Node000008"><a xlink:href="classDbcValueDescriptionHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="937.5,-64 787.5,-64 787.5,-15 937.5,-15 937.5,-64"/>
<text text-anchor="start" x="792.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcValueDescriptionHandler</text>
<text text-anchor="start" x="860.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="813" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="847.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="787.5,-46.5 787.5,-46.5 937.5,-46.5 937.5,-46.5 787.5,-46.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="787.5,-31.5 787.5,-31.5 937.5,-31.5 937.5,-31.5 787.5,-31.5"/>
<polygon fill="none" stroke="#bfbfbf" points="787.5,-15 787.5,-64 937.5,-64 937.5,-15 787.5,-15"/>
<g id="a_Node000008"><a xlink:href="classDbcUnsupportedMultiplexingHandler.html" target="_top" xlink:title="Reject unsupported extended multiplexing statements.">
<polygon fill="white" stroke="transparent" points="897.5,-69.5 745.5,-69.5 745.5,-9.5 897.5,-9.5 897.5,-69.5"/>
<text text-anchor="start" x="750.5" y="-57.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcUnsupportedMultiplexing</text>
<text text-anchor="start" x="802" y="-46.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handler</text>
<text text-anchor="start" x="819.5" y="-31.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="771.5" y="-16.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="806.5" y="-16.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="745.5,-41.5 745.5,-41.5 897.5,-41.5 897.5,-41.5 745.5,-41.5"/>
<polygon fill="#666666" stroke="#666666" points="745.5,-26.5 745.5,-26.5 897.5,-26.5 897.5,-26.5 745.5,-26.5"/>
<polygon fill="none" stroke="#666666" points="745.5,-9.5 745.5,-69.5 897.5,-69.5 897.5,-9.5 745.5,-9.5"/>
</a>
</g>
</g>
@@ -241,8 +241,32 @@ var sectionId = 'dynsection-0';
<g id="edge7_Node000001_Node000008" class="edge">
<title>Node1&#45;&gt;Node8</title>
<g id="a_edge7_Node000001_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M514.45,-135.67C585.64,-125.47 690.37,-107.25 778.5,-79 791.03,-74.98 804.15,-69.59 816.19,-64.11"/>
<polygon fill="none" stroke="#63b8ff" points="513.61,-132.26 504.2,-137.12 514.59,-139.19 513.61,-132.26"/>
<path fill="none" stroke="#63b8ff" d="M582.14,-125.89C628.12,-113.89 686.08,-97.43 736.5,-79 744.26,-76.16 752.3,-72.93 760.2,-69.57"/>
<polygon fill="none" stroke="#63b8ff" points="581.02,-122.56 572.22,-128.46 582.77,-129.34 581.02,-122.56"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_Node000009"><a xlink:href="classDbcValueDescriptionHandler.html" target="_top" xlink:title="Defer raw value descriptions for target resolution.">
<polygon fill="white" stroke="transparent" points="1065.5,-64 915.5,-64 915.5,-15 1065.5,-15 1065.5,-64"/>
<text text-anchor="start" x="920.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcValueDescriptionHandler</text>
<text text-anchor="start" x="988.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="941" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="975.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="915.5,-46.5 915.5,-46.5 1065.5,-46.5 1065.5,-46.5 915.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="915.5,-31.5 915.5,-31.5 1065.5,-31.5 1065.5,-31.5 915.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="915.5,-15 915.5,-64 1065.5,-64 1065.5,-15 915.5,-15"/>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node9 -->
<g id="edge8_Node000001_Node000009" class="edge">
<title>Node1&#45;&gt;Node9</title>
<g id="a_edge8_Node000001_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M582.31,-138.89C665.61,-130.24 797.04,-112.44 906.5,-79 919.23,-75.11 932.54,-69.7 944.71,-64.15"/>
<polygon fill="none" stroke="#63b8ff" points="581.74,-135.43 572.14,-139.93 582.45,-142.4 581.74,-135.43"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

@@ -4,24 +4,24 @@
<!-- Generated by graphviz version 2.42.4 (0)
-->
<!-- Title: DbcStatementHandler Pages: 1 -->
<svg width="946pt" height="187pt"
viewBox="0.00 0.00 945.50 187.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="1074pt" height="187pt"
viewBox="0.00 0.00 1073.50 187.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 183)">
<title>DbcStatementHandler</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<polygon fill="#999999" stroke="transparent" points="504,-179 359,-179 359,-115 504,-115 504,-179"/>
<text text-anchor="start" x="377.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="430" y="-152" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="363.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="376.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="363.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="376.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="359.5,-162 359.5,-162 504.5,-162 504.5,-162 359.5,-162"/>
<polygon fill="#666666" stroke="#666666" points="359.5,-147 359.5,-147 504.5,-147 504.5,-147 359.5,-147"/>
<polygon fill="none" stroke="#666666" points="359,-115 359,-179 504,-179 504,-115 359,-115"/>
<g id="a_Node000001"><a xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="#999999" stroke="transparent" points="572,-179 427,-179 427,-115 572,-115 572,-179"/>
<text text-anchor="start" x="445.5" y="-167" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="498" y="-152" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="431.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="444.5" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="431.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="444.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="427.5,-162 427.5,-162 572.5,-162 572.5,-162 427.5,-162"/>
<polygon fill="#666666" stroke="#666666" points="427.5,-147 427.5,-147 572.5,-147 572.5,-147 427.5,-147"/>
<polygon fill="none" stroke="#666666" points="427,-115 427,-179 572,-179 572,-115 427,-115"/>
</a>
</g>
</g>
@@ -50,23 +50,23 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node1&#45;&gt;Node2</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M348.84,-135.61C284.93,-125.83 195.06,-108.22 120.5,-79 117.45,-77.8 114.37,-76.47 111.3,-75.05"/>
<polygon fill="none" stroke="#63b8ff" points="348.46,-139.1 358.87,-137.12 349.5,-132.17 348.46,-139.1"/>
<path fill="none" stroke="#63b8ff" d="M416.64,-139.97C338.33,-132.28 218.54,-115.33 120.5,-79 117.43,-77.86 114.33,-76.58 111.25,-75.19"/>
<polygon fill="none" stroke="#63b8ff" points="416.65,-143.48 426.94,-140.95 417.31,-136.51 416.65,-143.48"/>
</a>
</g>
</g>
<!-- Node3 -->
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:href="classDbcCommentHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="245.5,-64 129.5,-64 129.5,-15 245.5,-15 245.5,-64"/>
<text text-anchor="start" x="134.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcCommentHandler</text>
<text text-anchor="start" x="185.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="146.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="172.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="129.5,-46.5 129.5,-46.5 245.5,-46.5 245.5,-46.5 129.5,-46.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="129.5,-31.5 129.5,-31.5 245.5,-31.5 245.5,-31.5 129.5,-31.5"/>
<polygon fill="none" stroke="#bfbfbf" points="129.5,-15 129.5,-64 245.5,-64 245.5,-15 129.5,-15"/>
<g id="a_Node000003"><a xlink:href="classDbcAttributeHandler.html" target="_top" xlink:title="Defer typed attribute statements for resolution.">
<polygon fill="white" stroke="transparent" points="239.5,-64 129.5,-64 129.5,-15 239.5,-15 239.5,-64"/>
<text text-anchor="start" x="134.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcAttributeHandler</text>
<text text-anchor="start" x="182.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="145" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="169.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="129.5,-46.5 129.5,-46.5 239.5,-46.5 239.5,-46.5 129.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="129.5,-31.5 129.5,-31.5 239.5,-31.5 239.5,-31.5 129.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="129.5,-15 129.5,-64 239.5,-64 239.5,-15 129.5,-15"/>
</a>
</g>
</g>
@@ -74,23 +74,23 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1&#45;&gt;Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M349.27,-117.98C319.03,-106.86 284.79,-93.32 254.5,-79 245.16,-74.58 235.38,-69.34 226.26,-64.17"/>
<polygon fill="none" stroke="#63b8ff" points="348.34,-121.36 358.93,-121.5 350.74,-114.79 348.34,-121.36"/>
<path fill="none" stroke="#63b8ff" d="M417.06,-130.13C367.13,-119.02 302.8,-102.04 248.5,-79 238.83,-74.9 228.87,-69.54 219.78,-64.13"/>
<polygon fill="none" stroke="#63b8ff" points="416.34,-133.55 426.85,-132.27 417.83,-126.71 416.34,-133.55"/>
</a>
</g>
</g>
<!-- Node4 -->
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="classDbcFrameHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="361.5,-64 263.5,-64 263.5,-15 361.5,-15 361.5,-64"/>
<text text-anchor="start" x="268.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcFrameHandler</text>
<text text-anchor="start" x="310.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="276" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="297.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="263.5,-46.5 263.5,-46.5 361.5,-46.5 361.5,-46.5 263.5,-46.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="263.5,-31.5 263.5,-31.5 361.5,-31.5 361.5,-31.5 263.5,-31.5"/>
<polygon fill="none" stroke="#bfbfbf" points="263.5,-15 263.5,-64 361.5,-64 361.5,-15 263.5,-15"/>
<g id="a_Node000004"><a xlink:href="classDbcCommentHandler.html" target="_top" xlink:title="Defer frame and signal comments for target resolution.">
<polygon fill="white" stroke="transparent" points="373.5,-64 257.5,-64 257.5,-15 373.5,-15 373.5,-64"/>
<text text-anchor="start" x="262.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcCommentHandler</text>
<text text-anchor="start" x="313.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="274.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="300.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="257.5,-46.5 257.5,-46.5 373.5,-46.5 373.5,-46.5 257.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="257.5,-31.5 257.5,-31.5 373.5,-31.5 373.5,-31.5 257.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="257.5,-15 257.5,-64 373.5,-64 373.5,-15 257.5,-15"/>
</a>
</g>
</g>
@@ -98,23 +98,23 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1&#45;&gt;Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M388.55,-107.92C372.13,-93.37 353.89,-77.19 339.38,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="386.64,-110.9 396.44,-114.92 391.28,-105.66 386.64,-110.9"/>
<path fill="none" stroke="#63b8ff" d="M436.35,-109.86C418.9,-99.87 399.96,-89.02 382.5,-79 374.12,-74.19 365.16,-69.05 356.6,-64.13"/>
<polygon fill="none" stroke="#63b8ff" points="434.9,-113.06 445.32,-114.99 438.38,-106.99 434.9,-113.06"/>
</a>
</g>
</g>
<!-- Node5 -->
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:href="classDbcHeaderHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="483,-64 380,-64 380,-15 483,-15 483,-64"/>
<text text-anchor="start" x="385.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcHeaderHandler</text>
<text text-anchor="start" x="430" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="394" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="416.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="380.5,-46.5 380.5,-46.5 483.5,-46.5 483.5,-46.5 380.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="380.5,-31.5 380.5,-31.5 483.5,-31.5 483.5,-31.5 380.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="380,-15 380,-64 483,-64 483,-15 380,-15"/>
<g id="a_Node000005"><a xlink:href="classDbcFrameHandler.html" target="_top" xlink:title="Parse and append frame definitions.">
<polygon fill="white" stroke="transparent" points="489.5,-64 391.5,-64 391.5,-15 489.5,-15 489.5,-64"/>
<text text-anchor="start" x="396.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcFrameHandler</text>
<text text-anchor="start" x="438.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="404" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="425.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="391.5,-46.5 391.5,-46.5 489.5,-46.5 489.5,-46.5 391.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="391.5,-31.5 391.5,-31.5 489.5,-31.5 489.5,-31.5 391.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="391.5,-15 391.5,-64 489.5,-64 489.5,-15 391.5,-15"/>
</a>
</g>
</g>
@@ -122,23 +122,23 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1&#45;&gt;Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M431.5,-104.72C431.5,-91.03 431.5,-76.26 431.5,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="428,-104.92 431.5,-114.92 435,-104.92 428,-104.92"/>
<path fill="none" stroke="#63b8ff" d="M477.09,-105.93C469.25,-91.9 460.69,-76.61 453.83,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="474.18,-107.9 482.12,-114.92 480.29,-104.48 474.18,-107.9"/>
</a>
</g>
</g>
<!-- Node6 -->
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="classDbcSignalHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="599.5,-64 501.5,-64 501.5,-15 599.5,-15 599.5,-64"/>
<text text-anchor="start" x="506.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcSignalHandler</text>
<text text-anchor="start" x="548.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="514" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="535.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="501.5,-46.5 501.5,-46.5 599.5,-46.5 599.5,-46.5 501.5,-46.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="501.5,-31.5 501.5,-31.5 599.5,-31.5 599.5,-31.5 501.5,-31.5"/>
<polygon fill="none" stroke="#bfbfbf" points="501.5,-15 501.5,-64 599.5,-64 599.5,-15 501.5,-15"/>
<g id="a_Node000006"><a xlink:href="classDbcHeaderHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="611,-64 508,-64 508,-15 611,-15 611,-64"/>
<text text-anchor="start" x="513.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcHeaderHandler</text>
<text text-anchor="start" x="558" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="522" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="544.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="508.5,-46.5 508.5,-46.5 611.5,-46.5 611.5,-46.5 508.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="508.5,-31.5 508.5,-31.5 611.5,-31.5 611.5,-31.5 508.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="508,-15 508,-64 611,-64 611,-15 508,-15"/>
</a>
</g>
</g>
@@ -146,24 +146,23 @@
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1&#45;&gt;Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M474.45,-107.92C490.87,-93.37 509.11,-77.19 523.62,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="471.72,-105.66 466.56,-114.92 476.36,-110.9 471.72,-105.66"/>
<path fill="none" stroke="#63b8ff" d="M522.29,-105.93C530.27,-91.9 538.97,-76.61 545.95,-64.33"/>
<polygon fill="none" stroke="#63b8ff" points="519.08,-104.49 517.18,-114.92 525.16,-107.95 519.08,-104.49"/>
</a>
</g>
</g>
<!-- Node7 -->
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_Node000007"><a xlink:href="classDbcUnsupportedMultiplexingHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="769.5,-69.5 617.5,-69.5 617.5,-9.5 769.5,-9.5 769.5,-69.5"/>
<text text-anchor="start" x="622.5" y="-57.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcUnsupportedMultiplexing</text>
<text text-anchor="start" x="674" y="-46.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handler</text>
<text text-anchor="start" x="691.5" y="-31.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="643.5" y="-16.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="678.5" y="-16.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="617.5,-41.5 617.5,-41.5 769.5,-41.5 769.5,-41.5 617.5,-41.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="617.5,-26.5 617.5,-26.5 769.5,-26.5 769.5,-26.5 617.5,-26.5"/>
<polygon fill="none" stroke="#bfbfbf" points="617.5,-9.5 617.5,-69.5 769.5,-69.5 769.5,-9.5 617.5,-9.5"/>
<g id="a_Node000007"><a xlink:href="classDbcSignalHandler.html" target="_top" xlink:title="Parse and append signals to the current frame.">
<polygon fill="white" stroke="transparent" points="727.5,-64 629.5,-64 629.5,-15 727.5,-15 727.5,-64"/>
<text text-anchor="start" x="634.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcSignalHandler</text>
<text text-anchor="start" x="676.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="642" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="663.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="629.5,-46.5 629.5,-46.5 727.5,-46.5 727.5,-46.5 629.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="629.5,-31.5 629.5,-31.5 727.5,-31.5 727.5,-31.5 629.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="629.5,-15 629.5,-64 727.5,-64 727.5,-15 629.5,-15"/>
</a>
</g>
</g>
@@ -171,23 +170,24 @@
<g id="edge6_Node000001_Node000007" class="edge">
<title>Node1&#45;&gt;Node7</title>
<g id="a_edge6_Node000001_Node000007"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M513.82,-116.07C543.79,-104.86 577.83,-91.73 608.5,-79 615.68,-76.02 623.16,-72.8 630.57,-69.54"/>
<polygon fill="none" stroke="#63b8ff" points="512.39,-112.87 504.25,-119.65 514.84,-119.43 512.39,-112.87"/>
<path fill="none" stroke="#63b8ff" d="M566.97,-109.9C584.55,-100.14 603.37,-89.4 620.5,-79 628.14,-74.36 636.22,-69.18 643.83,-64.17"/>
<polygon fill="none" stroke="#63b8ff" points="564.96,-107 557.9,-114.9 568.34,-113.13 564.96,-107"/>
</a>
</g>
</g>
<!-- Node8 -->
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_Node000008"><a xlink:href="classDbcValueDescriptionHandler.html" target="_top" xlink:title=" ">
<polygon fill="white" stroke="transparent" points="937.5,-64 787.5,-64 787.5,-15 937.5,-15 937.5,-64"/>
<text text-anchor="start" x="792.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcValueDescriptionHandler</text>
<text text-anchor="start" x="860.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="813" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="847.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="787.5,-46.5 787.5,-46.5 937.5,-46.5 937.5,-46.5 787.5,-46.5"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="787.5,-31.5 787.5,-31.5 937.5,-31.5 937.5,-31.5 787.5,-31.5"/>
<polygon fill="none" stroke="#bfbfbf" points="787.5,-15 787.5,-64 937.5,-64 937.5,-15 787.5,-15"/>
<g id="a_Node000008"><a xlink:href="classDbcUnsupportedMultiplexingHandler.html" target="_top" xlink:title="Reject unsupported extended multiplexing statements.">
<polygon fill="white" stroke="transparent" points="897.5,-69.5 745.5,-69.5 745.5,-9.5 897.5,-9.5 897.5,-69.5"/>
<text text-anchor="start" x="750.5" y="-57.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcUnsupportedMultiplexing</text>
<text text-anchor="start" x="802" y="-46.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handler</text>
<text text-anchor="start" x="819.5" y="-31.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="771.5" y="-16.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="806.5" y="-16.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="745.5,-41.5 745.5,-41.5 897.5,-41.5 897.5,-41.5 745.5,-41.5"/>
<polygon fill="#666666" stroke="#666666" points="745.5,-26.5 745.5,-26.5 897.5,-26.5 897.5,-26.5 745.5,-26.5"/>
<polygon fill="none" stroke="#666666" points="745.5,-9.5 745.5,-69.5 897.5,-69.5 897.5,-9.5 745.5,-9.5"/>
</a>
</g>
</g>
@@ -195,8 +195,32 @@
<g id="edge7_Node000001_Node000008" class="edge">
<title>Node1&#45;&gt;Node8</title>
<g id="a_edge7_Node000001_Node000008"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M514.45,-135.67C585.64,-125.47 690.37,-107.25 778.5,-79 791.03,-74.98 804.15,-69.59 816.19,-64.11"/>
<polygon fill="none" stroke="#63b8ff" points="513.61,-132.26 504.2,-137.12 514.59,-139.19 513.61,-132.26"/>
<path fill="none" stroke="#63b8ff" d="M582.14,-125.89C628.12,-113.89 686.08,-97.43 736.5,-79 744.26,-76.16 752.3,-72.93 760.2,-69.57"/>
<polygon fill="none" stroke="#63b8ff" points="581.02,-122.56 572.22,-128.46 582.77,-129.34 581.02,-122.56"/>
</a>
</g>
</g>
<!-- Node9 -->
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_Node000009"><a xlink:href="classDbcValueDescriptionHandler.html" target="_top" xlink:title="Defer raw value descriptions for target resolution.">
<polygon fill="white" stroke="transparent" points="1065.5,-64 915.5,-64 915.5,-15 1065.5,-15 1065.5,-64"/>
<text text-anchor="start" x="920.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcValueDescriptionHandler</text>
<text text-anchor="start" x="988.5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
<text text-anchor="start" x="941" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="975.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#666666" stroke="#666666" points="915.5,-46.5 915.5,-46.5 1065.5,-46.5 1065.5,-46.5 915.5,-46.5"/>
<polygon fill="#666666" stroke="#666666" points="915.5,-31.5 915.5,-31.5 1065.5,-31.5 1065.5,-31.5 915.5,-31.5"/>
<polygon fill="none" stroke="#666666" points="915.5,-15 915.5,-64 1065.5,-64 1065.5,-15 915.5,-15"/>
</a>
</g>
</g>
<!-- Node1&#45;&gt;Node9 -->
<g id="edge8_Node000001_Node000009" class="edge">
<title>Node1&#45;&gt;Node9</title>
<g id="a_edge8_Node000001_Node000009"><a xlink:title=" ">
<path fill="none" stroke="#63b8ff" d="M582.31,-138.89C665.61,-130.24 797.04,-112.44 906.5,-79 919.23,-75.11 932.54,-69.7 944.71,-64.15"/>
<polygon fill="none" stroke="#63b8ff" points="581.74,-135.43 572.14,-139.93 582.45,-142.4 581.74,-135.43"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

+2
View File
@@ -142,6 +142,8 @@ Public Member Functions</h2></td></tr>
<p class="reference">References <a class="el" href="dbc__database_8h_source.html#l00023">DbcDatabase::frames</a>.</p>
<p class="reference">Referenced by <a class="el" href="examples_2main_8cpp_source.html#l00101">main()</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
+11 -11
View File
@@ -101,26 +101,26 @@ $(document).ready(function(){initNavTree('classDbcTreeModel.html',''); initResiz
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ByteOrder</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>CanId</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CanIdRole</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>Column</b> enum name (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>columnCount</b>(const QModelIndex &amp;parent=QModelIndex()) const override (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069ae">Column</a> enum name</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcTreeModel.html#a397f885e7fd45c387825b4357b875c10">columnCount</a>(const QModelIndex &amp;parent=QModelIndex()) const override</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>ColumnCount</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Comment</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>CommentRole</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>data</b>(const QModelIndex &amp;index, int role=Qt::DisplayRole) const override (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>DbcTreeModel</b>(QObject *parent=nullptr) (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcTreeModel.html#aca81d05c81cc48c1185fc36659e96e5b">data</a>(const QModelIndex &amp;index, int role=Qt::DisplayRole) const override</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcTreeModel.html#a4f7214b727d812885bf077352ec9ece1">DbcTreeModel</a>(QObject *parent=nullptr)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ExtendedRole</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>flags</b>(const QModelIndex &amp;index) const override (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>headerData</b>(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>index</b>(int row, int column, const QModelIndex &amp;parent=QModelIndex()) const override (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcTreeModel.html#a8f7842a79144bdb24fa9c5fbdcd37295">flags</a>(const QModelIndex &amp;index) const override</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcTreeModel.html#aad5834e8edb00808cbfa498ea8c63fe9">headerData</a>(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcTreeModel.html#a8caeb5ec6141eb3e446e48df3c70b3ad">index</a>(int row, int column, const QModelIndex &amp;parent=QModelIndex()) const override</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>LittleEndianRole</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>Name</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NodeTypeRole</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>parent</b>(const QModelIndex &amp;child) const override (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcTreeModel.html#ae40bb8b8a26d205f178c6dd1134ff4b3">parent</a>(const QModelIndex &amp;child) const override</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>PayloadLength</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>PayloadLengthRole</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Role</b> enum name (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>rowCount</b>(const QModelIndex &amp;parent=QModelIndex()) const override (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SetTree</b>(std::unique_ptr&lt; TreeNode &gt; root) (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfd">Role</a> enum name</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDbcTreeModel.html#a30bed0d65342917c19d9183da55af452">rowCount</a>(const QModelIndex &amp;parent=QModelIndex()) const override</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcTreeModel.html#a8cb5a81d456cdead42b75fd3462ee00a">SetTree</a>(std::unique_ptr&lt; TreeNode &gt; root)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>Signed</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>SignedRole</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>StartBit</b> enum value (defined in <a class="el" href="classDbcTreeModel.html">DbcTreeModel</a>)</td><td class="entry"><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></td><td class="entry"></td></tr>
+54 -13
View File
@@ -109,7 +109,7 @@ $(document).ready(function(){initNavTree('classDbcTreeModel.html',''); initResiz
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a5e31be609fae4d7dfdd79140f56069ae" id="r_a5e31be609fae4d7dfdd79140f56069ae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>Column</b> { <br />
<tr class="memitem:a5e31be609fae4d7dfdd79140f56069ae" id="r_a5e31be609fae4d7dfdd79140f56069ae"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069ae">Column</a> { <br />
&#160;&#160;<b>Name</b>
, <b>CanId</b>
, <b>PayloadLength</b>
@@ -124,8 +124,9 @@ Public Types</h2></td></tr>
, <b>ColumnCount</b>
<br />
}</td></tr>
<tr class="memdesc:a5e31be609fae4d7dfdd79140f56069ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Display columns for frame and signal metadata. <a href="classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069ae">More...</a><br /></td></tr>
<tr class="separator:a5e31be609fae4d7dfdd79140f56069ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f360d424848c6c39f2312e6209b0dfd" id="r_a0f360d424848c6c39f2312e6209b0dfd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><b>Role</b> { <br />
<tr class="memitem:a0f360d424848c6c39f2312e6209b0dfd" id="r_a0f360d424848c6c39f2312e6209b0dfd"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfd">Role</a> { <br />
&#160;&#160;<b>NodeTypeRole</b> = Qt::UserRole + 1
, <b>CanIdRole</b>
, <b>PayloadLengthRole</b>
@@ -141,31 +142,41 @@ Public Types</h2></td></tr>
, <b>ExtendedRole</b>
<br />
}</td></tr>
<tr class="memdesc:a0f360d424848c6c39f2312e6209b0dfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Typed metadata roles in addition to Qt display roles. <a href="classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfd">More...</a><br /></td></tr>
<tr class="separator:a0f360d424848c6c39f2312e6209b0dfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4f7214b727d812885bf077352ec9ece1" id="r_a4f7214b727d812885bf077352ec9ece1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a4f7214b727d812885bf077352ec9ece1">DbcTreeModel</a> (QObject *parent=nullptr)</td></tr>
<tr class="memitem:a4f7214b727d812885bf077352ec9ece1" id="r_a4f7214b727d812885bf077352ec9ece1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a4f7214b727d812885bf077352ec9ece1">DbcTreeModel</a> (QObject *<a class="el" href="classDbcTreeModel.html#ae40bb8b8a26d205f178c6dd1134ff4b3">parent</a>=nullptr)</td></tr>
<tr class="memdesc:a4f7214b727d812885bf077352ec9ece1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create an empty read-only model. <br /></td></tr>
<tr class="separator:a4f7214b727d812885bf077352ec9ece1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cb5a81d456cdead42b75fd3462ee00a" id="r_a8cb5a81d456cdead42b75fd3462ee00a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a8cb5a81d456cdead42b75fd3462ee00a">SetTree</a> (std::unique_ptr&lt; <a class="el" href="classTreeNode.html">TreeNode</a> &gt; root)</td></tr>
<tr class="memdesc:a8cb5a81d456cdead42b75fd3462ee00a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace the tree and invalidate indexes; reject roots with a parent or non-root type. <br /></td></tr>
<tr class="separator:a8cb5a81d456cdead42b75fd3462ee00a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8caeb5ec6141eb3e446e48df3c70b3ad" id="r_a8caeb5ec6141eb3e446e48df3c70b3ad"><td class="memItemLeft" align="right" valign="top">QModelIndex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a8caeb5ec6141eb3e446e48df3c70b3ad">index</a> (int row, int column, const QModelIndex &amp;parent=QModelIndex()) const override</td></tr>
<tr class="memitem:a8caeb5ec6141eb3e446e48df3c70b3ad" id="r_a8caeb5ec6141eb3e446e48df3c70b3ad"><td class="memItemLeft" align="right" valign="top">QModelIndex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a8caeb5ec6141eb3e446e48df3c70b3ad">index</a> (int row, int column, const QModelIndex &amp;<a class="el" href="classDbcTreeModel.html#ae40bb8b8a26d205f178c6dd1134ff4b3">parent</a>=QModelIndex()) const override</td></tr>
<tr class="memdesc:a8caeb5ec6141eb3e446e48df3c70b3ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a child index; only column zero can have children. <br /></td></tr>
<tr class="separator:a8caeb5ec6141eb3e446e48df3c70b3ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae40bb8b8a26d205f178c6dd1134ff4b3" id="r_ae40bb8b8a26d205f178c6dd1134ff4b3"><td class="memItemLeft" align="right" valign="top">QModelIndex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#ae40bb8b8a26d205f178c6dd1134ff4b3">parent</a> (const QModelIndex &amp;child) const override</td></tr>
<tr class="memdesc:ae40bb8b8a26d205f178c6dd1134ff4b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the parent in column zero, or an invalid index for frames. <br /></td></tr>
<tr class="separator:ae40bb8b8a26d205f178c6dd1134ff4b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30bed0d65342917c19d9183da55af452" id="r_a30bed0d65342917c19d9183da55af452"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a30bed0d65342917c19d9183da55af452">rowCount</a> (const QModelIndex &amp;parent=QModelIndex()) const override</td></tr>
<tr class="memitem:a30bed0d65342917c19d9183da55af452" id="r_a30bed0d65342917c19d9183da55af452"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a30bed0d65342917c19d9183da55af452">rowCount</a> (const QModelIndex &amp;<a class="el" href="classDbcTreeModel.html#ae40bb8b8a26d205f178c6dd1134ff4b3">parent</a>=QModelIndex()) const override</td></tr>
<tr class="memdesc:a30bed0d65342917c19d9183da55af452"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the child count, capped at the Qt integer limit. <br /></td></tr>
<tr class="separator:a30bed0d65342917c19d9183da55af452"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a397f885e7fd45c387825b4357b875c10" id="r_a397f885e7fd45c387825b4357b875c10"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a397f885e7fd45c387825b4357b875c10">columnCount</a> (const QModelIndex &amp;parent=QModelIndex()) const override</td></tr>
<tr class="memitem:a397f885e7fd45c387825b4357b875c10" id="r_a397f885e7fd45c387825b4357b875c10"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a397f885e7fd45c387825b4357b875c10">columnCount</a> (const QModelIndex &amp;<a class="el" href="classDbcTreeModel.html#ae40bb8b8a26d205f178c6dd1134ff4b3">parent</a>=QModelIndex()) const override</td></tr>
<tr class="memdesc:a397f885e7fd45c387825b4357b875c10"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the fixed metadata column count for this model. <br /></td></tr>
<tr class="separator:a397f885e7fd45c387825b4357b875c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca81d05c81cc48c1185fc36659e96e5b" id="r_aca81d05c81cc48c1185fc36659e96e5b"><td class="memItemLeft" align="right" valign="top">QVariant&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#aca81d05c81cc48c1185fc36659e96e5b">data</a> (const QModelIndex &amp;index, int role=Qt::DisplayRole) const override</td></tr>
<tr class="memitem:aca81d05c81cc48c1185fc36659e96e5b" id="r_aca81d05c81cc48c1185fc36659e96e5b"><td class="memItemLeft" align="right" valign="top">QVariant&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#aca81d05c81cc48c1185fc36659e96e5b">data</a> (const QModelIndex &amp;<a class="el" href="classDbcTreeModel.html#a8caeb5ec6141eb3e446e48df3c70b3ad">index</a>, int role=Qt::DisplayRole) const override</td></tr>
<tr class="memdesc:aca81d05c81cc48c1185fc36659e96e5b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return display text or typed metadata for an index. <br /></td></tr>
<tr class="separator:aca81d05c81cc48c1185fc36659e96e5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad5834e8edb00808cbfa498ea8c63fe9" id="r_aad5834e8edb00808cbfa498ea8c63fe9"><td class="memItemLeft" align="right" valign="top">QVariant&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#aad5834e8edb00808cbfa498ea8c63fe9">headerData</a> (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override</td></tr>
<tr class="memdesc:aad5834e8edb00808cbfa498ea8c63fe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return horizontal display column titles. <br /></td></tr>
<tr class="separator:aad5834e8edb00808cbfa498ea8c63fe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f7842a79144bdb24fa9c5fbdcd37295" id="r_a8f7842a79144bdb24fa9c5fbdcd37295"><td class="memItemLeft" align="right" valign="top">Qt::ItemFlags&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a8f7842a79144bdb24fa9c5fbdcd37295">flags</a> (const QModelIndex &amp;index) const override</td></tr>
<tr class="memitem:a8f7842a79144bdb24fa9c5fbdcd37295" id="r_a8f7842a79144bdb24fa9c5fbdcd37295"><td class="memItemLeft" align="right" valign="top">Qt::ItemFlags&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeModel.html#a8f7842a79144bdb24fa9c5fbdcd37295">flags</a> (const QModelIndex &amp;<a class="el" href="classDbcTreeModel.html#a8caeb5ec6141eb3e446e48df3c70b3ad">index</a>) const override</td></tr>
<tr class="memdesc:a8f7842a79144bdb24fa9c5fbdcd37295"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow selecting and enabling valid indexes without editing. <br /></td></tr>
<tr class="separator:a8f7842a79144bdb24fa9c5fbdcd37295"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Read-only model. Owns an immutable tree; all indexes expire on SetTree(). Use QPersistentModelIndex to observe reset invalidation. Call on the model thread. </p>
<div class="textblock"><p>Read-only model. Owns an immutable tree; all indexes expire on <a class="el" href="classDbcTreeModel.html#a8cb5a81d456cdead42b75fd3462ee00a" title="Replace the tree and invalidate indexes; reject roots with a parent or non-root type.">SetTree()</a>. Use QPersistentModelIndex to observe reset invalidation. Call on the model thread. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8h_source.html#l00011">11</a> of file <a class="el" href="dbc__tree__model_8h_source.html">dbc_tree_model.h</a>.</p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
@@ -176,12 +187,14 @@ Public Member Functions</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum DbcTreeModel::Column</td>
<td class="memname">enum <a class="el" href="classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069ae">DbcTreeModel::Column</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8h_source.html#l00013">13</a> of file <a class="el" href="dbc__tree__model_8h_source.html">dbc_tree_model.h</a>.</p>
<p>Display columns for frame and signal metadata. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8h_source.html#l00014">14</a> of file <a class="el" href="dbc__tree__model_8h_source.html">dbc_tree_model.h</a>.</p>
</div>
</div>
@@ -192,12 +205,14 @@ Public Member Functions</h2></td></tr>
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum DbcTreeModel::Role</td>
<td class="memname">enum <a class="el" href="classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfd">DbcTreeModel::Role</a></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8h_source.html#l00024">24</a> of file <a class="el" href="dbc__tree__model_8h_source.html">dbc_tree_model.h</a>.</p>
<p>Typed metadata roles in addition to Qt display roles. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8h_source.html#l00026">26</a> of file <a class="el" href="dbc__tree__model_8h_source.html">dbc_tree_model.h</a>.</p>
</div>
</div>
@@ -226,6 +241,8 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Create an empty read-only model. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00025">25</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
</div>
@@ -247,6 +264,8 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Replace the tree and invalidate indexes; reject roots with a parent or non-root type. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00027">27</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
</div>
@@ -291,8 +310,12 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Return a child index; only column zero can have children. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00042">42</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
<p class="reference">References <a class="el" href="tree__node_8cpp_source.html#l00045">TreeNode::GetChild()</a>.</p>
</div>
</div>
<a id="ae40bb8b8a26d205f178c6dd1134ff4b3" name="ae40bb8b8a26d205f178c6dd1134ff4b3"></a>
@@ -319,8 +342,12 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Return the parent in column zero, or an invalid index for frames. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00053">53</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
<p class="reference">References <a class="el" href="tree__node_8cpp_source.html#l00075">TreeNode::GetParent()</a>, and <a class="el" href="tree__node_8cpp_source.html#l00079">TreeNode::GetRow()</a>.</p>
</div>
</div>
<a id="a30bed0d65342917c19d9183da55af452" name="a30bed0d65342917c19d9183da55af452"></a>
@@ -347,8 +374,12 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Return the child count, capped at the Qt integer limit. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00061">61</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
<p class="reference">References <a class="el" href="tree__node_8cpp_source.html#l00041">TreeNode::GetChildCount()</a>.</p>
</div>
</div>
<a id="a397f885e7fd45c387825b4357b875c10" name="a397f885e7fd45c387825b4357b875c10"></a>
@@ -375,6 +406,8 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Return the fixed metadata column count for this model. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00070">70</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
</div>
@@ -413,8 +446,12 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Return display text or typed metadata for an index. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00074">74</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
<p class="reference">References <a class="el" href="frame__info_8h_source.html#l00027">FrameInfo::canId</a>, <a class="el" href="frame__info_8h_source.html#l00033">FrameInfo::comment</a>, <a class="el" href="signal__info_8h_source.html#l00039">SignalInfo::comment</a>, <a class="el" href="frame__info_8h_source.html#l00031">FrameInfo::dlc</a>, <a class="el" href="tree__node_8cpp_source.html#l00067">TreeNode::GetFrame()</a>, <a class="el" href="tree__node_8cpp_source.html#l00063">TreeNode::GetName()</a>, <a class="el" href="tree__node_8cpp_source.html#l00071">TreeNode::GetSignal()</a>, <a class="el" href="tree__node_8cpp_source.html#l00059">TreeNode::GetType()</a>, <a class="el" href="frame__info_8h_source.html#l00028">FrameInfo::isExtended</a>, <a class="el" href="signal__info_8h_source.html#l00030">SignalInfo::isLittleEndian</a>, <a class="el" href="signal__info_8h_source.html#l00031">SignalInfo::isSigned</a>, <a class="el" href="signal__info_8h_source.html#l00029">SignalInfo::length</a>, <a class="el" href="signal__info_8h_source.html#l00028">SignalInfo::startBit</a>, <a class="el" href="signal__info_8h_source.html#l00036">SignalInfo::unit</a>, and <a class="el" href="signal__info_8h_source.html#l00038">SignalInfo::valueDescriptions</a>.</p>
</div>
</div>
<a id="aad5834e8edb00808cbfa498ea8c63fe9" name="aad5834e8edb00808cbfa498ea8c63fe9"></a>
@@ -457,6 +494,8 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Return horizontal display column titles. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00138">138</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
</div>
@@ -485,6 +524,8 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Allow selecting and enabling valid indexes without editing. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__model_8cpp_source.html#l00145">145</a> of file <a class="el" href="dbc__tree__model_8cpp_source.html">dbc_tree_model.cpp</a>.</p>
</div>
+37
View File
@@ -0,0 +1,37 @@
var classDbcTreeModel =
[
[ "Column", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069ae", [
[ "Name", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aea656b55f10472395261871ff7ef3f4484", null ],
[ "CanId", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aeaa74a27fd4ea0e2d561c6ba9b15640010", null ],
[ "PayloadLength", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aea8bc7de06cffddca5470da004741ed939", null ],
[ "StartBit", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aeaa87659982bb22d7598c49cc08cd36c65", null ],
[ "BitLength", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aea657c7487a591debd704e4f7e4536b207", null ],
[ "ByteOrder", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aea391e0095b1fac0d05fde0d5cb5edda85", null ],
[ "Signed", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aea5baf88846401000c49679f46e619ef87", null ],
[ "Unit", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aeaa154ab92b4d4ef65526238428ae3cace", null ],
[ "Comment", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aea01cbc280578dad3fea144b98755b7ef3", null ],
[ "ColumnCount", "classDbcTreeModel.html#a5e31be609fae4d7dfdd79140f56069aea58500e460c83ab951d9271b3b795f234", null ]
] ],
[ "Role", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfd", [
[ "NodeTypeRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfdabe2c2768f230f994534963c6d32230d7", null ],
[ "CanIdRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfda66d77c4244f1fcbae2ff66aff2be85d4", null ],
[ "PayloadLengthRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfdaf8574caf8d0986f7d6d6d7923a7bdaa0", null ],
[ "StartBitRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfdae702dc1611c58e76e36ee280091be1d8", null ],
[ "BitLengthRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfda716858f9cb0b60a665214362afd210ca", null ],
[ "LittleEndianRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfda9df090ff74d5110d75df22a0b2e507e8", null ],
[ "SignedRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfdad1c30e9d3e9ade5edbc5262a2131007b", null ],
[ "UnitRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfda55cc6538817898e455ae2cbd4cd7e755", null ],
[ "CommentRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfdaee6045bcb658e9feefff87ca7d9e57ff", null ],
[ "ValueDescriptionsRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfda8a5d5985c970c7c04290a7b0f3aa05f0", null ],
[ "ExtendedRole", "classDbcTreeModel.html#a0f360d424848c6c39f2312e6209b0dfda155fbc1aa36cd7f15711f4461720fa1d", null ]
] ],
[ "DbcTreeModel", "classDbcTreeModel.html#a4f7214b727d812885bf077352ec9ece1", null ],
[ "SetTree", "classDbcTreeModel.html#a8cb5a81d456cdead42b75fd3462ee00a", null ],
[ "index", "classDbcTreeModel.html#a8caeb5ec6141eb3e446e48df3c70b3ad", null ],
[ "parent", "classDbcTreeModel.html#ae40bb8b8a26d205f178c6dd1134ff4b3", null ],
[ "rowCount", "classDbcTreeModel.html#a30bed0d65342917c19d9183da55af452", null ],
[ "columnCount", "classDbcTreeModel.html#a397f885e7fd45c387825b4357b875c10", null ],
[ "data", "classDbcTreeModel.html#aca81d05c81cc48c1185fc36659e96e5b", null ],
[ "headerData", "classDbcTreeModel.html#aad5834e8edb00808cbfa498ea8c63fe9", null ],
[ "flags", "classDbcTreeModel.html#a8f7842a79144bdb24fa9c5fbdcd37295", null ]
];
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('classDbcUnsupportedMultiplexingHandler
<p>This is the complete list of members for <a class="el" href="classDbcUnsupportedMultiplexingHandler.html">DbcUnsupportedMultiplexingHandler</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Handle</b>(const std::string &amp;line, DbcParseContext &amp;context) const override (defined in <a class="el" href="classDbcUnsupportedMultiplexingHandler.html">DbcUnsupportedMultiplexingHandler</a>)</td><td class="entry"><a class="el" href="classDbcUnsupportedMultiplexingHandler.html">DbcUnsupportedMultiplexingHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcUnsupportedMultiplexingHandler.html#a9853fd67465f92ef587792986ea179ac">Handle</a>(const std::string &amp;line, DbcParseContext &amp;context) const override</td><td class="entry"><a class="el" href="classDbcUnsupportedMultiplexingHandler.html">DbcUnsupportedMultiplexingHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~DbcStatementHandler</b>()=default (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
@@ -96,6 +96,11 @@ $(document).ready(function(){initNavTree('classDbcUnsupportedMultiplexingHandler
<div class="headertitle"><div class="title">DbcUnsupportedMultiplexingHandler Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Reject unsupported extended multiplexing statements.
<a href="classDbcUnsupportedMultiplexingHandler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DbcUnsupportedMultiplexingHandler:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
@@ -107,11 +112,13 @@ $(document).ready(function(){initNavTree('classDbcUnsupportedMultiplexingHandler
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9853fd67465f92ef587792986ea179ac" id="r_a9853fd67465f92ef587792986ea179ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcUnsupportedMultiplexingHandler.html#a9853fd67465f92ef587792986ea179ac">Handle</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const override</td></tr>
<tr class="memdesc:a9853fd67465f92ef587792986ea179ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a trimmed statement using state belonging to this parse. <br /></td></tr>
<tr class="separator:a9853fd67465f92ef587792986ea179ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00079">79</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<div class="textblock"><p>Reject unsupported extended multiplexing statements. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00118">118</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a9853fd67465f92ef587792986ea179ac" name="a9853fd67465f92ef587792986ea179ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9853fd67465f92ef587792986ea179ac">&#9670;&#160;</a></span>Handle()</h2>
@@ -147,9 +154,11 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>.</p>
<p>Process a trimmed statement using state belonging to this parse. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00449">449</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p>Implements <a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">DbcStatementHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00451">451</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
</div>
</div>
@@ -0,0 +1,4 @@
var classDbcUnsupportedMultiplexingHandler =
[
[ "Handle", "classDbcUnsupportedMultiplexingHandler.html#a9853fd67465f92ef587792986ea179ac", null ]
];
@@ -1,5 +1,5 @@
<map id="DbcUnsupportedMultiplexingHandler" name="DbcUnsupportedMultiplexingHandler">
<area shape="rect" id="Node000001" title=" " alt="" coords="5,139,208,219"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title=" " alt="" coords="10,5,203,91"/>
<area shape="rect" id="Node000001" title="Reject unsupported extended multiplexing statements." alt="" coords="5,139,208,219"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title="Interface for processing a registered DBC statement." alt="" coords="10,5,203,91"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="109,105,109,139,104,139,104,105"/>
</map>
@@ -1 +1 @@
1ace6705ea51cc639d0122e87818555f
1f2e8b51bbe924941f117d0a9d6518af
@@ -21,7 +21,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Reject unsupported extended multiplexing statements.">
<polygon fill="#999999" stroke="transparent" points="152,-60 0,-60 0,0 152,0 152,-60"/>
<text text-anchor="start" x="5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">DbcUnsupportedMultiplexing</text>
<text text-anchor="start" x="56.5" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00">Handler</text>
@@ -37,7 +37,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="148.5,-160 3.5,-160 3.5,-96 148.5,-96 148.5,-160"/>
<text text-anchor="start" x="22" y="-148" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="74.5" y="-133" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -45,9 +45,9 @@
<text text-anchor="start" x="21" y="-118" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="8" y="-103" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="21" y="-103" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="4,-143 4,-143 149,-143 149,-143 4,-143"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="4,-128 4,-128 149,-128 149,-128 4,-128"/>
<polygon fill="none" stroke="#bfbfbf" points="3.5,-96 3.5,-160 148.5,-160 148.5,-96 3.5,-96"/>
<polygon fill="#666666" stroke="#666666" points="4,-143 4,-143 149,-143 149,-143 4,-143"/>
<polygon fill="#666666" stroke="#666666" points="4,-128 4,-128 149,-128 149,-128 4,-128"/>
<polygon fill="none" stroke="#666666" points="3.5,-96 3.5,-160 148.5,-160 148.5,-96 3.5,-96"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

@@ -11,7 +11,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Reject unsupported extended multiplexing statements.">
<polygon fill="#999999" stroke="transparent" points="152,-60 0,-60 0,0 152,0 152,-60"/>
<text text-anchor="start" x="5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">DbcUnsupportedMultiplexing</text>
<text text-anchor="start" x="56.5" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00">Handler</text>
@@ -27,7 +27,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="148.5,-160 3.5,-160 3.5,-96 148.5,-96 148.5,-160"/>
<text text-anchor="start" x="22" y="-148" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="74.5" y="-133" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -35,9 +35,9 @@
<text text-anchor="start" x="21" y="-118" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="8" y="-103" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="21" y="-103" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="4,-143 4,-143 149,-143 149,-143 4,-143"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="4,-128 4,-128 149,-128 149,-128 4,-128"/>
<polygon fill="none" stroke="#bfbfbf" points="3.5,-96 3.5,-160 148.5,-160 148.5,-96 3.5,-96"/>
<polygon fill="#666666" stroke="#666666" points="4,-143 4,-143 149,-143 149,-143 4,-143"/>
<polygon fill="#666666" stroke="#666666" points="4,-128 4,-128 149,-128 149,-128 4,-128"/>
<polygon fill="none" stroke="#666666" points="3.5,-96 3.5,-160 148.5,-160 148.5,-96 3.5,-96"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('classDbcValueDescriptionHandler.html',
<p>This is the complete list of members for <a class="el" href="classDbcValueDescriptionHandler.html">DbcValueDescriptionHandler</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Handle</b>(const std::string &amp;line, DbcParseContext &amp;context) const override (defined in <a class="el" href="classDbcValueDescriptionHandler.html">DbcValueDescriptionHandler</a>)</td><td class="entry"><a class="el" href="classDbcValueDescriptionHandler.html">DbcValueDescriptionHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDbcValueDescriptionHandler.html#a653e13364f396b54244edc2c0fdd831a">Handle</a>(const std::string &amp;line, DbcParseContext &amp;context) const override</td><td class="entry"><a class="el" href="classDbcValueDescriptionHandler.html">DbcValueDescriptionHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>~DbcStatementHandler</b>()=default (defined in <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>)</td><td class="entry"><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
+15 -4
View File
@@ -96,6 +96,11 @@ $(document).ready(function(){initNavTree('classDbcValueDescriptionHandler.html',
<div class="headertitle"><div class="title">DbcValueDescriptionHandler Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Defer raw value descriptions for target resolution.
<a href="classDbcValueDescriptionHandler.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>&gt;</code></p>
<div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
<img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for DbcValueDescriptionHandler:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
@@ -107,11 +112,13 @@ $(document).ready(function(){initNavTree('classDbcValueDescriptionHandler.html',
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a653e13364f396b54244edc2c0fdd831a" id="r_a653e13364f396b54244edc2c0fdd831a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcValueDescriptionHandler.html#a653e13364f396b54244edc2c0fdd831a">Handle</a> (const std::string &amp;line, <a class="el" href="structDbcParseContext.html">DbcParseContext</a> &amp;context) const override</td></tr>
<tr class="memdesc:a653e13364f396b54244edc2c0fdd831a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Process a trimmed statement using state belonging to this parse. <br /></td></tr>
<tr class="separator:a653e13364f396b54244edc2c0fdd831a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00074">74</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
<div class="textblock"><p>Defer raw value descriptions for target resolution. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8h_source.html#l00112">112</a> of file <a class="el" href="dbc__statement__handler_8h_source.html">dbc_statement_handler.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a653e13364f396b54244edc2c0fdd831a" name="a653e13364f396b54244edc2c0fdd831a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a653e13364f396b54244edc2c0fdd831a">&#9670;&#160;</a></span>Handle()</h2>
@@ -147,9 +154,13 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p>Implements <a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a>.</p>
<p>Process a trimmed statement using state belonging to this parse. </p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00400">400</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p>Implements <a class="el" href="classDbcStatementHandler.html#a3de86e1e27e9bcb0fe6f1460a8ba5739">DbcStatementHandler</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__statement__handler_8cpp_source.html#l00402">402</a> of file <a class="el" href="dbc__statement__handler_8cpp_source.html">dbc_statement_handler.cpp</a>.</p>
<p class="reference">References <a class="el" href="dbc__statement__handler_8h_source.html#l00014">PendingValueDescriptions::canId</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00017">PendingValueDescriptions::descriptions</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00015">PendingValueDescriptions::isExtended</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00018">PendingValueDescriptions::lineNumber</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00054">DbcParseContext::lineNumber</a>, <a class="el" href="dbc__statement__handler_8h_source.html#l00055">DbcParseContext::pendingValues</a>, and <a class="el" href="dbc__statement__handler_8h_source.html#l00016">PendingValueDescriptions::signalName</a>.</p>
</div>
</div>
@@ -0,0 +1,4 @@
var classDbcValueDescriptionHandler =
[
[ "Handle", "classDbcValueDescriptionHandler.html#a653e13364f396b54244edc2c0fdd831a", null ]
];
@@ -1,5 +1,5 @@
<map id="DbcValueDescriptionHandler" name="DbcValueDescriptionHandler">
<area shape="rect" id="Node000001" title=" " alt="" coords="5,139,205,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title=" " alt="" coords="9,5,202,91"/>
<area shape="rect" id="Node000001" title="Defer raw value descriptions for target resolution." alt="" coords="5,139,205,204"/>
<area shape="rect" id="Node000002" href="$classDbcStatementHandler.html" title="Interface for processing a registered DBC statement." alt="" coords="9,5,202,91"/>
<area shape="poly" id="edge1_Node000001_Node000002" title=" " alt="" coords="108,104,108,138,103,138,103,104"/>
</map>
@@ -1 +1 @@
4e812f2e61b60e6fd25b2da8062e2440
8f2173a95b2682d924bc583343a1615c
@@ -21,7 +21,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Defer raw value descriptions for target resolution.">
<polygon fill="#999999" stroke="transparent" points="150,-49 0,-49 0,0 150,0 150,-49"/>
<text text-anchor="start" x="5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcValueDescriptionHandler</text>
<text text-anchor="start" x="73" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -36,7 +36,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="147.5,-149 2.5,-149 2.5,-85 147.5,-85 147.5,-149"/>
<text text-anchor="start" x="21" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="73.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -44,9 +44,9 @@
<text text-anchor="start" x="20" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="7" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="20" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="3,-132 3,-132 148,-132 148,-132 3,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="3,-117 3,-117 148,-117 148,-117 3,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="2.5,-85 2.5,-149 147.5,-149 147.5,-85 2.5,-85"/>
<polygon fill="#666666" stroke="#666666" points="3,-132 3,-132 148,-132 148,-132 3,-132"/>
<polygon fill="#666666" stroke="#666666" points="3,-117 3,-117 148,-117 148,-117 3,-117"/>
<polygon fill="none" stroke="#666666" points="2.5,-85 2.5,-149 147.5,-149 147.5,-85 2.5,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

@@ -11,7 +11,7 @@
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title=" ">
<g id="a_Node000001"><a xlink:title="Defer raw value descriptions for target resolution.">
<polygon fill="#999999" stroke="transparent" points="150,-49 0,-49 0,0 150,0 150,-49"/>
<text text-anchor="start" x="5" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">DbcValueDescriptionHandler</text>
<text text-anchor="start" x="73" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -26,7 +26,7 @@
<!-- Node2 -->
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title=" ">
<g id="a_Node000002"><a xlink:href="classDbcStatementHandler.html" target="_top" xlink:title="Interface for processing a registered DBC statement.">
<polygon fill="white" stroke="transparent" points="147.5,-149 2.5,-149 2.5,-85 147.5,-85 147.5,-149"/>
<text text-anchor="start" x="21" y="-137" font-family="Helvetica,sans-Serif" font-size="10.00">DbcStatementHandler</text>
<text text-anchor="start" x="73.5" y="-122" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
@@ -34,9 +34,9 @@
<text text-anchor="start" x="20" y="-107" font-family="Helvetica,sans-Serif" font-size="10.00">~DbcStatementHandler()</text>
<text text-anchor="start" x="7" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="20" y="-92" font-family="Helvetica,sans-Serif" font-size="10.00">Handle()</text>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="3,-132 3,-132 148,-132 148,-132 3,-132"/>
<polygon fill="#bfbfbf" stroke="#bfbfbf" points="3,-117 3,-117 148,-117 148,-117 3,-117"/>
<polygon fill="none" stroke="#bfbfbf" points="2.5,-85 2.5,-149 147.5,-149 147.5,-85 2.5,-85"/>
<polygon fill="#666666" stroke="#666666" points="3,-132 3,-132 148,-132 148,-132 3,-132"/>
<polygon fill="#666666" stroke="#666666" points="3,-117 3,-117 148,-117 148,-117 3,-117"/>
<polygon fill="none" stroke="#666666" points="2.5,-85 2.5,-149 147.5,-149 147.5,-85 2.5,-85"/>
</a>
</g>
</g>

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

+3 -2
View File
@@ -99,8 +99,9 @@ $(document).ready(function(){initNavTree('classDecodeDatabase.html',''); initRes
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DecodeDatabase</b>()=default (defined in <a class="el" href="classDecodeDatabase.html">DecodeDatabase</a>)</td><td class="entry"><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDecodeDatabase.html#a51a44cf7c3f23c98ec8781afe0097c0c">DecodeDatabase</a>(const std::vector&lt; DecodeFrame &gt; &amp;frames)</td><td class="entry"><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDecodeDatabase.html#a780d6e747a48b10a5eb0ab85448d2970">FindFrame</a>(const FrameKey &amp;key) const</td><td class="entry"><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>FindSignal</b>(const SignalKey &amp;key) const (defined in <a class="el" href="classDecodeDatabase.html">DecodeDatabase</a>)</td><td class="entry"><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDecodeDatabase.html#aa034c1510984a85f60ad6c0bd744d6e8">GetFrames</a>() const</td><td class="entry"><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDecodeDatabase.html#aa96b62b4f3fff68ab651674760f60d6d">FindFrameByPgn</a>(std::uint32_t pgn) const</td><td class="entry"><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classDecodeDatabase.html#a0af5b15b9953a4f6551c27ee9ae8b514">FindSignal</a>(const SignalKey &amp;key) const</td><td class="entry"><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classDecodeDatabase.html#aa034c1510984a85f60ad6c0bd744d6e8">GetFrames</a>() const</td><td class="entry"><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+38 -6
View File
@@ -111,13 +111,16 @@ Public Member Functions</h2></td></tr>
<tr class="separator:aa034c1510984a85f60ad6c0bd744d6e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a780d6e747a48b10a5eb0ab85448d2970" id="r_a780d6e747a48b10a5eb0ab85448d2970"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; const <a class="el" href="structDecodeFrame.html">DecodeFrame</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDecodeDatabase.html#a780d6e747a48b10a5eb0ab85448d2970">FindFrame</a> (const <a class="el" href="structFrameKey.html">FrameKey</a> &amp;key) const</td></tr>
<tr class="separator:a780d6e747a48b10a5eb0ab85448d2970"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa96b62b4f3fff68ab651674760f60d6d" id="r_aa96b62b4f3fff68ab651674760f60d6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structPgnLookupResult.html">PgnLookupResult</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDecodeDatabase.html#aa96b62b4f3fff68ab651674760f60d6d">FindFrameByPgn</a> (std::uint32_t pgn) const</td></tr>
<tr class="separator:aa96b62b4f3fff68ab651674760f60d6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0af5b15b9953a4f6551c27ee9ae8b514" id="r_a0af5b15b9953a4f6551c27ee9ae8b514"><td class="memItemLeft" align="right" valign="top">std::shared_ptr&lt; const <a class="el" href="structDecodeSignal.html">DecodeSignal</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDecodeDatabase.html#a0af5b15b9953a4f6551c27ee9ae8b514">FindSignal</a> (const <a class="el" href="structSignalKey.html">SignalKey</a> &amp;key) const</td></tr>
<tr class="memdesc:a0af5b15b9953a4f6551c27ee9ae8b514"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an owning signal handle, or an empty handle for a missing key. <br /></td></tr>
<tr class="separator:a0af5b15b9953a4f6551c27ee9ae8b514"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles and decoded results keep old definitions alive. </p>
<p class="definition">Definition at line <a class="el" href="decode__database_8h_source.html#l00087">87</a> of file <a class="el" href="decode__database_8h_source.html">decode_database.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="decode__database_8h_source.html#l00101">101</a> of file <a class="el" href="decode__database_8h_source.html">decode_database.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a51a44cf7c3f23c98ec8781afe0097c0c" name="a51a44cf7c3f23c98ec8781afe0097c0c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51a44cf7c3f23c98ec8781afe0097c0c">&#9670;&#160;</a></span>DecodeDatabase()</h2>
@@ -149,7 +152,7 @@ Public Member Functions</h2></td></tr>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00101">101</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00111">111</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
</div>
</div>
@@ -170,7 +173,9 @@ Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Borrowed view, valid while this snapshot remains alive and unchanged. </p>
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00105">105</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00115">115</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="examples_2main_8cpp_source.html#l00101">main()</a>.</p>
</div>
</div>
@@ -191,9 +196,32 @@ Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Owning handles retain the entire snapshot across reload or destruction. </p>
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00110">110</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00120">120</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__decoder_8cpp_source.html#l00017">DbcDecoder::FindFrame()</a>.</p>
<p class="reference">Referenced by <a class="el" href="decode__database_8cpp_source.html#l00146">FindSignal()</a>.</p>
</div>
</div>
<a id="aa96b62b4f3fff68ab651674760f60d6d" name="aa96b62b4f3fff68ab651674760f60d6d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa96b62b4f3fff68ab651674760f60d6d">&#9670;&#160;</a></span>FindFrameByPgn()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structPgnLookupResult.html">PgnLookupResult</a> DecodeDatabase::FindFrameByPgn </td>
<td>(</td>
<td class="paramtype">std::uint32_t&#160;</td>
<td class="paramname"><em>pgn</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Only explicitly marked hasPgn frames participate; ambiguous results have no definition. </p>
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00130">130</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
<p class="reference">References <a class="el" href="decode__database_8h_source.html#l00094">PgnLookupResult::ambiguous</a>, and <a class="el" href="decode__database_8h_source.html#l00093">PgnLookupResult::definition</a>.</p>
</div>
</div>
@@ -213,7 +241,11 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00120">120</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
<p>Return an owning signal handle, or an empty handle for a missing key. </p>
<p class="definition">Definition at line <a class="el" href="decode__database_8cpp_source.html#l00146">146</a> of file <a class="el" href="decode__database_8cpp_source.html">decode_database.cpp</a>.</p>
<p class="reference">References <a class="el" href="decode__database_8cpp_source.html#l00120">FindFrame()</a>, <a class="el" href="definition__key_8h_source.html#l00046">SignalKey::frame</a>, <a class="el" href="decode__database_8h_source.html#l00046">DecodeSignal::name</a>, and <a class="el" href="definition__key_8h_source.html#l00047">SignalKey::name</a>.</p>
</div>
</div>
+3 -1
View File
@@ -2,5 +2,7 @@ var classDecodeDatabase =
[
[ "DecodeDatabase", "classDecodeDatabase.html#a51a44cf7c3f23c98ec8781afe0097c0c", null ],
[ "GetFrames", "classDecodeDatabase.html#aa034c1510984a85f60ad6c0bd744d6e8", null ],
[ "FindFrame", "classDecodeDatabase.html#a780d6e747a48b10a5eb0ab85448d2970", null ]
[ "FindFrame", "classDecodeDatabase.html#a780d6e747a48b10a5eb0ab85448d2970", null ],
[ "FindFrameByPgn", "classDecodeDatabase.html#aa96b62b4f3fff68ab651674760f60d6d", null ],
[ "FindSignal", "classDecodeDatabase.html#a0af5b15b9953a4f6551c27ee9ae8b514", null ]
];
+7 -5
View File
@@ -96,15 +96,17 @@ $(document).ready(function(){initNavTree('classTreeNode.html',''); initResizable
<p>This is the complete list of members for <a class="el" href="classTreeNode.html">TreeNode</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#a6161f2ebb92184eab4215d121870e788">AddChild</a>(std::unique_ptr&lt; TreeNode &gt; child)</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#af87331684d4b40240aec75e3286921d3">AddChild</a>(std::unique_ptr&lt; TreeNode &gt; &amp;&amp;child)</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6">GetChild</a>(std::size_t index) const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f">GetChild</a>(std::size_t index)</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea">GetChildCount</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#afc503b40004764163605d6dbdb4ef811">GetFrame</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">GetName</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#aa48fbc17903eb8cfa40353e29f853c6f">GetParent</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTreeNode.html#ad501f97eeec7f7d3353bfae838fbb6a8">GetRow</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1">GetSignal</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTreeNode.html#af4e6e916c48c024a3dfeadac8174b527">GetFrameKey</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">GetName</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTreeNode.html#aa48fbc17903eb8cfa40353e29f853c6f">GetParent</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#ad501f97eeec7f7d3353bfae838fbb6a8">GetRow</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1">GetSignal</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#a1eb94f7b6e7962c9d867a120772dfe6e">GetSignalKey</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9">GetType</a>() const</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>operator=</b>(const TreeNode &amp;)=delete (defined in <a class="el" href="classTreeNode.html">TreeNode</a>)</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>operator=</b>(TreeNode &amp;&amp;)=delete (defined in <a class="el" href="classTreeNode.html">TreeNode</a>)</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"></td></tr>
+93 -21
View File
@@ -125,13 +125,17 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a9a3f8862ad7562e03e77b761eb94804c" id="r_a9a3f8862ad7562e03e77b761eb94804c"><td class="memItemLeft" align="right" valign="top"><a id="a9a3f8862ad7562e03e77b761eb94804c" name="a9a3f8862ad7562e03e77b761eb94804c"></a>
<a class="el" href="classTreeNode.html">TreeNode</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classTreeNode.html">TreeNode</a> &amp;&amp;)=delete</td></tr>
<tr class="separator:a9a3f8862ad7562e03e77b761eb94804c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6161f2ebb92184eab4215d121870e788" id="r_a6161f2ebb92184eab4215d121870e788"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#a6161f2ebb92184eab4215d121870e788">AddChild</a> (std::unique_ptr&lt; <a class="el" href="classTreeNode.html">TreeNode</a> &gt; child)</td></tr>
<tr class="memdesc:a6161f2ebb92184eab4215d121870e788"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add child node. <br /></td></tr>
<tr class="separator:a6161f2ebb92184eab4215d121870e788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af87331684d4b40240aec75e3286921d3" id="r_af87331684d4b40240aec75e3286921d3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#af87331684d4b40240aec75e3286921d3">AddChild</a> (std::unique_ptr&lt; <a class="el" href="classTreeNode.html">TreeNode</a> &gt; &amp;&amp;child)</td></tr>
<tr class="memdesc:af87331684d4b40240aec75e3286921d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add child node. <br /></td></tr>
<tr class="separator:af87331684d4b40240aec75e3286921d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa48fbc17903eb8cfa40353e29f853c6f" id="r_aa48fbc17903eb8cfa40353e29f853c6f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classTreeNode.html">TreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#aa48fbc17903eb8cfa40353e29f853c6f">GetParent</a> () const</td></tr>
<tr class="separator:aa48fbc17903eb8cfa40353e29f853c6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad501f97eeec7f7d3353bfae838fbb6a8" id="r_ad501f97eeec7f7d3353bfae838fbb6a8"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#ad501f97eeec7f7d3353bfae838fbb6a8">GetRow</a> () const</td></tr>
<tr class="separator:ad501f97eeec7f7d3353bfae838fbb6a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4e6e916c48c024a3dfeadac8174b527" id="r_af4e6e916c48c024a3dfeadac8174b527"><td class="memItemLeft" align="right" valign="top">std::optional&lt; <a class="el" href="structFrameKey.html">FrameKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#af4e6e916c48c024a3dfeadac8174b527">GetFrameKey</a> () const</td></tr>
<tr class="separator:af4e6e916c48c024a3dfeadac8174b527"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eb94f7b6e7962c9d867a120772dfe6e" id="r_a1eb94f7b6e7962c9d867a120772dfe6e"><td class="memItemLeft" align="right" valign="top">std::optional&lt; <a class="el" href="structSignalKey.html">SignalKey</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#a1eb94f7b6e7962c9d867a120772dfe6e">GetSignalKey</a> () const</td></tr>
<tr class="separator:a1eb94f7b6e7962c9d867a120772dfe6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abdd82460187dca8d3e5d66f5d5c529ea" id="r_abdd82460187dca8d3e5d66f5d5c529ea"><td class="memItemLeft" align="right" valign="top">std::size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea">GetChildCount</a> () const</td></tr>
<tr class="memdesc:abdd82460187dca8d3e5d66f5d5c529ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get child count. <br /></td></tr>
<tr class="separator:abdd82460187dca8d3e5d66f5d5c529ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -157,7 +161,7 @@ Public Member Functions</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Tree node for later use in model/view or other hierarchy consumers. </p>
<p class="definition">Definition at line <a class="el" href="tree__node_8h_source.html#l00035">35</a> of file <a class="el" href="tree__node_8h_source.html">tree_node.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8h_source.html#l00037">37</a> of file <a class="el" href="tree__node_8h_source.html">tree_node.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a984a98d5ccf7ef1f5a18094c6821f35d" name="a984a98d5ccf7ef1f5a18094c6821f35d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a984a98d5ccf7ef1f5a18094c6821f35d">&#9670;&#160;</a></span>TreeNode() <span class="overload">[1/3]</span></h2>
@@ -176,7 +180,7 @@ Public Member Functions</h2></td></tr>
<p>Create root node. </p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00014">14</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00015">15</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
@@ -212,7 +216,7 @@ Public Member Functions</h2></td></tr>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00018">18</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00019">19</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
@@ -248,13 +252,13 @@ Public Member Functions</h2></td></tr>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00022">22</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00023">23</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a6161f2ebb92184eab4215d121870e788" name="a6161f2ebb92184eab4215d121870e788"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6161f2ebb92184eab4215d121870e788">&#9670;&#160;</a></span>AddChild()</h2>
<a id="af87331684d4b40240aec75e3286921d3" name="af87331684d4b40240aec75e3286921d3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af87331684d4b40240aec75e3286921d3">&#9670;&#160;</a></span>AddChild()</h2>
<div class="memitem">
<div class="memproto">
@@ -262,7 +266,7 @@ Public Member Functions</h2></td></tr>
<tr>
<td class="memname">void TreeNode::AddChild </td>
<td>(</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classTreeNode.html">TreeNode</a> &gt;&#160;</td>
<td class="paramtype">std::unique_ptr&lt; <a class="el" href="classTreeNode.html">TreeNode</a> &gt; &amp;&amp;&#160;</td>
<td class="paramname"><em>child</em></td><td>)</td>
<td></td>
</tr>
@@ -272,12 +276,18 @@ Public Member Functions</h2></td></tr>
<p>Add child node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">child</td><td>Child node to add. </td></tr>
<tr><td class="paramname">child</td><td>Child node to add. A null child is ignored. Existing children keep their addresses and rows. Ownership must be exclusive; attached nodes cannot be reparented. </td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::invalid_argument</td><td>for self/ancestor insertion or an attached child. Rejected ownership remains with the caller. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00026">26</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00027">27</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
@@ -297,7 +307,9 @@ Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Non-owning parent; nullptr for a detached node or the root. </p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00068">68</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00075">75</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__tree__model_8cpp_source.html#l00053">DbcTreeModel::parent()</a>.</p>
</div>
</div>
@@ -317,7 +329,55 @@ Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Zero-based sibling position; zero for a detached node or the root. </p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00072">72</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00079">79</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__tree__model_8cpp_source.html#l00053">DbcTreeModel::parent()</a>.</p>
</div>
</div>
<a id="af4e6e916c48c024a3dfeadac8174b527" name="af4e6e916c48c024a3dfeadac8174b527"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4e6e916c48c024a3dfeadac8174b527">&#9670;&#160;</a></span>GetFrameKey()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::optional&lt; <a class="el" href="structFrameKey.html">FrameKey</a> &gt; TreeNode::GetFrameKey </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Frame identity for frame nodes and signals attached to a frame; otherwise empty. </p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00083">83</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">References <a class="el" href="tree__node_8cpp_source.html#l00083">GetFrameKey()</a>, and <a class="el" href="tree__node_8cpp_source.html#l00059">GetType()</a>.</p>
<p class="reference">Referenced by <a class="el" href="tree__node_8cpp_source.html#l00083">GetFrameKey()</a>, and <a class="el" href="tree__node_8cpp_source.html#l00091">GetSignalKey()</a>.</p>
</div>
</div>
<a id="a1eb94f7b6e7962c9d867a120772dfe6e" name="a1eb94f7b6e7962c9d867a120772dfe6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1eb94f7b6e7962c9d867a120772dfe6e">&#9670;&#160;</a></span>GetSignalKey()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::optional&lt; <a class="el" href="structSignalKey.html">SignalKey</a> &gt; TreeNode::GetSignalKey </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Signal identity (owning frame key and name); empty for other/detached nodes. </p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00091">91</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">References <a class="el" href="tree__node_8cpp_source.html#l00083">GetFrameKey()</a>.</p>
</div>
</div>
@@ -339,7 +399,9 @@ Public Member Functions</h2></td></tr>
<p>Get child count. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of children. </dd></dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00034">34</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00041">41</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__tree__model_8cpp_source.html#l00061">DbcTreeModel::rowCount()</a>.</p>
</div>
</div>
@@ -368,7 +430,9 @@ Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Child pointer or nullptr if index is invalid. </dd></dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00038">38</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00045">45</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__tree__model_8cpp_source.html#l00042">DbcTreeModel::index()</a>.</p>
</div>
</div>
@@ -397,7 +461,7 @@ Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Child pointer or nullptr if index is invalid. </dd></dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00045">45</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00052">52</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
@@ -419,7 +483,9 @@ Public Member Functions</h2></td></tr>
<p>Get node type. </p>
<dl class="section return"><dt>Returns</dt><dd>Node type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00052">52</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00059">59</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__tree__model_8cpp_source.html#l00074">DbcTreeModel::data()</a>, and <a class="el" href="tree__node_8cpp_source.html#l00083">GetFrameKey()</a>.</p>
</div>
</div>
@@ -441,7 +507,9 @@ Public Member Functions</h2></td></tr>
<p>Get display name. </p>
<dl class="section return"><dt>Returns</dt><dd>Node name. </dd></dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00056">56</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00063">63</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__tree__model_8cpp_source.html#l00074">DbcTreeModel::data()</a>.</p>
</div>
</div>
@@ -463,7 +531,9 @@ Public Member Functions</h2></td></tr>
<p>Get frame payload if node is frame. </p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to frame info or nullptr. </dd></dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00060">60</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00067">67</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__tree__model_8cpp_source.html#l00074">DbcTreeModel::data()</a>.</p>
</div>
</div>
@@ -485,7 +555,9 @@ Public Member Functions</h2></td></tr>
<p>Get signal payload if node is signal. </p>
<dl class="section return"><dt>Returns</dt><dd>Pointer to signal info or nullptr. </dd></dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00064">64</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00071">71</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__tree__model_8cpp_source.html#l00074">DbcTreeModel::data()</a>.</p>
</div>
</div>
+3 -1
View File
@@ -3,9 +3,11 @@ var classTreeNode =
[ "TreeNode", "classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d", null ],
[ "TreeNode", "classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc", null ],
[ "TreeNode", "classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae", null ],
[ "AddChild", "classTreeNode.html#a6161f2ebb92184eab4215d121870e788", null ],
[ "AddChild", "classTreeNode.html#af87331684d4b40240aec75e3286921d3", null ],
[ "GetParent", "classTreeNode.html#aa48fbc17903eb8cfa40353e29f853c6f", null ],
[ "GetRow", "classTreeNode.html#ad501f97eeec7f7d3353bfae838fbb6a8", null ],
[ "GetFrameKey", "classTreeNode.html#af4e6e916c48c024a3dfeadac8174b527", null ],
[ "GetSignalKey", "classTreeNode.html#a1eb94f7b6e7962c9d867a120772dfe6e", null ],
[ "GetChildCount", "classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea", null ],
[ "GetChild", "classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6", null ],
[ "GetChild", "classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f", null ],
+3 -3
View File
@@ -96,12 +96,12 @@ $(document).ready(function(){initNavTree('classTypeFactory.html',''); initResiza
<p>This is the complete list of members for <a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a>, including all inherited members.</p>
<table class="directory">
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>BasePtr</b> typedef (defined in <a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a>)</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>classes</b> (defined in <a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a>)</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTypeFactory.html#a33b404da3e19ea7e1245b8a4975721bf">BasePtr</a> typedef</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTypeFactory.html#a5f119fe61c1cb9f4725ce746e4a047b3">classes</a></td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTypeFactory.html#a1a119ad2956abe146213c6ca124d8dd4">contains</a>(const ClassId &amp;id) const</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTypeFactory.html#a3f43b03d6e3a0fd503fdec01ecf62e9f">create</a>(const ClassId &amp;id, Args... args) const</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTypeFactory.html#ad82f537569ece3d3a4a376523fa94473">creator</a>(const ClassId &amp;id) const</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>CreatorFn</b> typedef (defined in <a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a>)</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classTypeFactory.html#a650022aac1e2f30af5bc554a5663939f">CreatorFn</a> typedef</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTypeFactory.html#ad6d85795285ee21193ac03e1b24762d3">registerType</a>(const ClassId &amp;id)</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>TypeFactory</b>()=default (defined in <a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a>)</td><td class="entry"><a class="el" href="classTypeFactory.html">TypeFactory&lt; ClassId, BaseClass, Args &gt;</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
+44 -23
View File
@@ -114,8 +114,10 @@ $(document).ready(function(){initNavTree('classTypeFactory.html',''); initResiza
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-types" name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a33b404da3e19ea7e1245b8a4975721bf" id="r_a33b404da3e19ea7e1245b8a4975721bf"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#a33b404da3e19ea7e1245b8a4975721bf">BasePtr</a> = std::shared_ptr&lt; BaseClass &gt;</td></tr>
<tr class="memdesc:a33b404da3e19ea7e1245b8a4975721bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shared ownership handle returned for created instances. <br /></td></tr>
<tr class="separator:a33b404da3e19ea7e1245b8a4975721bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a650022aac1e2f30af5bc554a5663939f" id="r_a650022aac1e2f30af5bc554a5663939f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#a650022aac1e2f30af5bc554a5663939f">CreatorFn</a> = BasePtr(*)(Args...)</td></tr>
<tr class="memitem:a650022aac1e2f30af5bc554a5663939f" id="r_a650022aac1e2f30af5bc554a5663939f"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#a650022aac1e2f30af5bc554a5663939f">CreatorFn</a> = <a class="el" href="classTypeFactory.html#a33b404da3e19ea7e1245b8a4975721bf">BasePtr</a>(*)(Args...)</td></tr>
<tr class="memdesc:a650022aac1e2f30af5bc554a5663939f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registered creator function signature. <br /></td></tr>
<tr class="separator:a650022aac1e2f30af5bc554a5663939f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
@@ -124,10 +126,10 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:ad6d85795285ee21193ac03e1b24762d3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#ad6d85795285ee21193ac03e1b24762d3">registerType</a> (const ClassId &amp;id)</td></tr>
<tr class="memdesc:ad6d85795285ee21193ac03e1b24762d3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registers a Derived type under the given id. <br /></td></tr>
<tr class="separator:ad6d85795285ee21193ac03e1b24762d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad82f537569ece3d3a4a376523fa94473" id="r_ad82f537569ece3d3a4a376523fa94473"><td class="memItemLeft" align="right" valign="top">CreatorFn&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#ad82f537569ece3d3a4a376523fa94473">creator</a> (const ClassId &amp;id) const</td></tr>
<tr class="memitem:ad82f537569ece3d3a4a376523fa94473" id="r_ad82f537569ece3d3a4a376523fa94473"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTypeFactory.html#a650022aac1e2f30af5bc554a5663939f">CreatorFn</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#ad82f537569ece3d3a4a376523fa94473">creator</a> (const ClassId &amp;id) const</td></tr>
<tr class="memdesc:ad82f537569ece3d3a4a376523fa94473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns creator function for the given id. <br /></td></tr>
<tr class="separator:ad82f537569ece3d3a4a376523fa94473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f43b03d6e3a0fd503fdec01ecf62e9f" id="r_a3f43b03d6e3a0fd503fdec01ecf62e9f"><td class="memItemLeft" align="right" valign="top">BasePtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#a3f43b03d6e3a0fd503fdec01ecf62e9f">create</a> (const ClassId &amp;id, Args... args) const</td></tr>
<tr class="memitem:a3f43b03d6e3a0fd503fdec01ecf62e9f" id="r_a3f43b03d6e3a0fd503fdec01ecf62e9f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTypeFactory.html#a33b404da3e19ea7e1245b8a4975721bf">BasePtr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#a3f43b03d6e3a0fd503fdec01ecf62e9f">create</a> (const ClassId &amp;id, Args... args) const</td></tr>
<tr class="memdesc:a3f43b03d6e3a0fd503fdec01ecf62e9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates an instance for the given id using provided arguments. <br /></td></tr>
<tr class="separator:a3f43b03d6e3a0fd503fdec01ecf62e9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a119ad2956abe146213c6ca124d8dd4" id="r_a1a119ad2956abe146213c6ca124d8dd4"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#a1a119ad2956abe146213c6ca124d8dd4">contains</a> (const ClassId &amp;id) const</td></tr>
@@ -136,7 +138,8 @@ Public Member Functions</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-attribs" name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a5f119fe61c1cb9f4725ce746e4a047b3" id="r_a5f119fe61c1cb9f4725ce746e4a047b3"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; ClassId, CreatorFn &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#a5f119fe61c1cb9f4725ce746e4a047b3">classes</a></td></tr>
<tr class="memitem:a5f119fe61c1cb9f4725ce746e4a047b3" id="r_a5f119fe61c1cb9f4725ce746e4a047b3"><td class="memItemLeft" align="right" valign="top">std::unordered_map&lt; ClassId, <a class="el" href="classTypeFactory.html#a650022aac1e2f30af5bc554a5663939f">CreatorFn</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTypeFactory.html#a5f119fe61c1cb9f4725ce746e4a047b3">classes</a></td></tr>
<tr class="memdesc:a5f119fe61c1cb9f4725ce746e4a047b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Registered creators; accessible to derived factories. <br /></td></tr>
<tr class="separator:a5f119fe61c1cb9f4725ce746e4a047b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
@@ -150,9 +153,9 @@ class TypeFactory&lt; ClassId, BaseClass, Args &gt;</div><p>Registry-based facto
</ul>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">ClassId</td><td>-Unique class identifier type (e.g. std::string, int, enum). </td></tr>
<tr><td class="paramname">BaseClass</td><td>-Base type for all created objects. </td></tr>
<tr><td class="paramname">Arg</td><td>- Constructor arguments forwarded to registered derived types (by value).</td></tr>
<tr><td class="paramname">ClassId</td><td>Unique class identifier type (e.g. std::string, int, enum). </td></tr>
<tr><td class="paramname">BaseClass</td><td>Base type for all created objects. </td></tr>
<tr><td class="paramname">Args</td><td>Constructor arguments forwarded to registered derived types (by value).</td></tr>
</table>
</dd>
</dl>
@@ -185,9 +188,9 @@ class TypeFactory&lt; ClassId, BaseClass, Args &gt;</div><p>Registry-based facto
<div class="line">(void)a-&gt;get();</div>
<div class="line">(void)b-&gt;get();</div>
<div class="ttc" id="aclassTypeFactory_html"><div class="ttname"><a href="classTypeFactory.html">TypeFactory</a></div><div class="ttdoc">Registry-based factory for creating objects by runtime identifier.</div><div class="ttdef"><b>Definition</b> <a href="typefactory_8h_source.html#l00059">typefactory.h:59</a></div></div>
<div class="ttc" id="aclassTypeFactory_html_a3f43b03d6e3a0fd503fdec01ecf62e9f"><div class="ttname"><a href="classTypeFactory.html#a3f43b03d6e3a0fd503fdec01ecf62e9f">TypeFactory::create</a></div><div class="ttdeci">BasePtr create(const ClassId &amp;id, Args... args) const</div><div class="ttdoc">Creates an instance for the given id using provided arguments.</div><div class="ttdef"><b>Definition</b> <a href="typefactory_8h_source.html#l00097">typefactory.h:97</a></div></div>
<div class="ttc" id="aclassTypeFactory_html_ad6d85795285ee21193ac03e1b24762d3"><div class="ttname"><a href="classTypeFactory.html#ad6d85795285ee21193ac03e1b24762d3">TypeFactory::registerType</a></div><div class="ttdeci">void registerType(const ClassId &amp;id)</div><div class="ttdoc">Registers a Derived type under the given id.</div><div class="ttdef"><b>Definition</b> <a href="typefactory_8h_source.html#l00076">typefactory.h:76</a></div></div>
<div class="ttc" id="aclassTypeFactory_html_ad82f537569ece3d3a4a376523fa94473"><div class="ttname"><a href="classTypeFactory.html#ad82f537569ece3d3a4a376523fa94473">TypeFactory::creator</a></div><div class="ttdeci">CreatorFn creator(const ClassId &amp;id) const</div><div class="ttdoc">Returns creator function for the given id.</div><div class="ttdef"><b>Definition</b> <a href="typefactory_8h_source.html#l00089">typefactory.h:89</a></div></div>
<div class="ttc" id="aclassTypeFactory_html_a3f43b03d6e3a0fd503fdec01ecf62e9f"><div class="ttname"><a href="classTypeFactory.html#a3f43b03d6e3a0fd503fdec01ecf62e9f">TypeFactory::create</a></div><div class="ttdeci">BasePtr create(const ClassId &amp;id, Args... args) const</div><div class="ttdoc">Creates an instance for the given id using provided arguments.</div><div class="ttdef"><b>Definition</b> <a href="typefactory_8h_source.html#l00099">typefactory.h:99</a></div></div>
<div class="ttc" id="aclassTypeFactory_html_ad6d85795285ee21193ac03e1b24762d3"><div class="ttname"><a href="classTypeFactory.html#ad6d85795285ee21193ac03e1b24762d3">TypeFactory::registerType</a></div><div class="ttdeci">void registerType(const ClassId &amp;id)</div><div class="ttdoc">Registers a Derived type under the given id.</div><div class="ttdef"><b>Definition</b> <a href="typefactory_8h_source.html#l00078">typefactory.h:78</a></div></div>
<div class="ttc" id="aclassTypeFactory_html_ad82f537569ece3d3a4a376523fa94473"><div class="ttname"><a href="classTypeFactory.html#ad82f537569ece3d3a4a376523fa94473">TypeFactory::creator</a></div><div class="ttdeci">CreatorFn creator(const ClassId &amp;id) const</div><div class="ttdoc">Returns creator function for the given id.</div><div class="ttdef"><b>Definition</b> <a href="typefactory_8h_source.html#l00091">typefactory.h:91</a></div></div>
</div><!-- fragment -->
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00059">59</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
@@ -205,7 +208,9 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00061">61</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p>Shared ownership handle returned for created instances. </p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00062">62</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
</div>
</div>
@@ -218,12 +223,14 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
<table class="memname">
<tr>
<td class="memname">using <a class="el" href="classTypeFactory.html">TypeFactory</a>&lt; ClassId, BaseClass, Args &gt;::CreatorFn = BasePtr (*)(Args...)</td>
<td class="memname">using <a class="el" href="classTypeFactory.html">TypeFactory</a>&lt; ClassId, BaseClass, Args &gt;::CreatorFn = <a class="el" href="classTypeFactory.html#a33b404da3e19ea7e1245b8a4975721bf">BasePtr</a> (*)(Args...)</td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00062">62</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p>Registered creator function signature. </p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00064">64</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
</div>
</div>
@@ -263,7 +270,11 @@ template&lt;class Derived &gt; </div>
</ul>
<p>Re-registering the same id overwrites the previous entry ("last wins"). </p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00076">76</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00078">78</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="reference">References <a class="el" href="typefactory_8h_source.html#l00112">TypeFactory&lt; ClassId, BaseClass, Args &gt;::classes</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__statement__handler_8h_source.html#l00137">DbcStatementDispatcher::RegisterType()</a>.</p>
</div>
</div>
@@ -279,7 +290,7 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">CreatorFn <a class="el" href="classTypeFactory.html">TypeFactory</a>&lt; ClassId, BaseClass, Args &gt;::creator </td>
<td class="memname"><a class="el" href="classTypeFactory.html#a650022aac1e2f30af5bc554a5663939f">CreatorFn</a> <a class="el" href="classTypeFactory.html">TypeFactory</a>&lt; ClassId, BaseClass, Args &gt;::creator </td>
<td>(</td>
<td class="paramtype">const ClassId &amp;&#160;</td>
<td class="paramname"><em>id</em></td><td>)</td>
@@ -301,9 +312,11 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00089">89</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00091">91</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="typefactory_8h_source.html#l00097">TypeFactory&lt; ClassId, BaseClass, Args &gt;::create()</a>.</p>
<p class="reference">References <a class="el" href="typefactory_8h_source.html#l00112">TypeFactory&lt; ClassId, BaseClass, Args &gt;::classes</a>.</p>
<p class="reference">Referenced by <a class="el" href="typefactory_8h_source.html#l00099">TypeFactory&lt; ClassId, BaseClass, Args &gt;::create()</a>.</p>
</div>
</div>
@@ -319,7 +332,7 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">BasePtr <a class="el" href="classTypeFactory.html">TypeFactory</a>&lt; ClassId, BaseClass, Args &gt;::create </td>
<td class="memname"><a class="el" href="classTypeFactory.html#a33b404da3e19ea7e1245b8a4975721bf">BasePtr</a> <a class="el" href="classTypeFactory.html">TypeFactory</a>&lt; ClassId, BaseClass, Args &gt;::create </td>
<td>(</td>
<td class="paramtype">const ClassId &amp;&#160;</td>
<td class="paramname"><em>id</em>, </td>
@@ -351,9 +364,11 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00097">97</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00099">99</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="reference">References <a class="el" href="typefactory_8h_source.html#l00089">TypeFactory&lt; ClassId, BaseClass, Args &gt;::creator()</a>.</p>
<p class="reference">References <a class="el" href="typefactory_8h_source.html#l00091">TypeFactory&lt; ClassId, BaseClass, Args &gt;::creator()</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__statement__handler_8h_source.html#l00137">DbcStatementDispatcher::RegisterType()</a>.</p>
</div>
</div>
@@ -385,7 +400,9 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
<p>Checks whether an id is registered. </p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00104">104</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00106">106</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="reference">References <a class="el" href="typefactory_8h_source.html#l00112">TypeFactory&lt; ClassId, BaseClass, Args &gt;::classes</a>.</p>
</div>
</div>
@@ -402,7 +419,7 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::unordered_map&lt;ClassId, CreatorFn&gt; <a class="el" href="classTypeFactory.html">TypeFactory</a>&lt; ClassId, BaseClass, Args &gt;::classes</td>
<td class="memname">std::unordered_map&lt;ClassId, <a class="el" href="classTypeFactory.html#a650022aac1e2f30af5bc554a5663939f">CreatorFn</a>&gt; <a class="el" href="classTypeFactory.html">TypeFactory</a>&lt; ClassId, BaseClass, Args &gt;::classes</td>
</tr>
</table>
</td>
@@ -412,7 +429,11 @@ template&lt;class ClassId , class BaseClass , class... Args&gt; </div>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00110">110</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p>Registered creators; accessible to derived factories. </p>
<p class="definition">Definition at line <a class="el" href="typefactory_8h_source.html#l00112">112</a> of file <a class="el" href="typefactory_8h_source.html">typefactory.h</a>.</p>
<p class="reference">Referenced by <a class="el" href="typefactory_8h_source.html#l00106">TypeFactory&lt; ClassId, BaseClass, Args &gt;::contains()</a>, <a class="el" href="typefactory_8h_source.html#l00091">TypeFactory&lt; ClassId, BaseClass, Args &gt;::creator()</a>, and <a class="el" href="typefactory_8h_source.html#l00078">TypeFactory&lt; ClassId, BaseClass, Args &gt;::registerType()</a>.</p>
</div>
</div>
+4 -1
View File
@@ -1,7 +1,10 @@
var classTypeFactory =
[
[ "BasePtr", "classTypeFactory.html#a33b404da3e19ea7e1245b8a4975721bf", null ],
[ "CreatorFn", "classTypeFactory.html#a650022aac1e2f30af5bc554a5663939f", null ],
[ "registerType", "classTypeFactory.html#ad6d85795285ee21193ac03e1b24762d3", null ],
[ "creator", "classTypeFactory.html#ad82f537569ece3d3a4a376523fa94473", null ],
[ "create", "classTypeFactory.html#a3f43b03d6e3a0fd503fdec01ecf62e9f", null ],
[ "contains", "classTypeFactory.html#a1a119ad2956abe146213c6ca124d8dd4", null ]
[ "contains", "classTypeFactory.html#a1a119ad2956abe146213c6ca124d8dd4", null ],
[ "classes", "classTypeFactory.html#a5f119fe61c1cb9f4725ce746e4a047b3", null ]
];
+12 -9
View File
@@ -93,27 +93,30 @@ $(document).ready(function(){initNavTree('classes.html',''); initResizable(); })
<div class="headertitle"><div class="title">Class Index</div></div>
</div><!--header-->
<div class="contents">
<div class="qindex"><a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
<div class="qindex"><a class="qindex" href="#letter_A">A</a>&#160;|&#160;<a class="qindex" href="#letter_D">D</a>&#160;|&#160;<a class="qindex" href="#letter_F">F</a>&#160;|&#160;<a class="qindex" href="#letter_M">M</a>&#160;|&#160;<a class="qindex" href="#letter_P">P</a>&#160;|&#160;<a class="qindex" href="#letter_R">R</a>&#160;|&#160;<a class="qindex" href="#letter_S">S</a>&#160;|&#160;<a class="qindex" href="#letter_T">T</a></div>
<div class="classindex">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_D" name="letter_D">D</a></dt>
<dd><a class="el" href="classDbcCommentHandler.html">DbcCommentHandler</a></dd><dd><a class="el" href="structDbcDatabase.html">DbcDatabase</a></dd><dd><a class="el" href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a></dd><dd><a class="el" href="classDbcDecoder.html">DbcDecoder</a></dd><dd><a class="el" href="structDbcDiagnostic.html">DbcDiagnostic</a></dd><dd><a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a></dd><dd><a class="el" href="classDbcFrameHandler.html">DbcFrameHandler</a></dd><dd><a class="el" href="classDbcHeaderHandler.html">DbcHeaderHandler</a></dd><dd><a class="el" href="structDbcParseContext.html">DbcParseContext</a></dd><dd><a class="el" href="classDbcParser.html">DbcParser</a></dd><dd><a class="el" href="structDbcParseResult.html">DbcParseResult</a></dd><dd><a class="el" href="classDbcSignalHandler.html">DbcSignalHandler</a></dd><dd><a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a></dd><dd><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></dd><dd><a class="el" href="classDbcTreeBuilder.html">DbcTreeBuilder</a></dd><dd><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></dd><dd><a class="el" href="classDbcUnsupportedMultiplexingHandler.html">DbcUnsupportedMultiplexingHandler</a></dd><dd><a class="el" href="classDbcValueDescriptionHandler.html">DbcValueDescriptionHandler</a></dd><dd><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></dd><dd><a class="el" href="structDecodedFrameValue.html">DecodedFrameValue</a></dd><dd><a class="el" href="structDecodedSignalValue.html">DecodedSignalValue</a></dd><dd><a class="el" href="structDecodeFrame.html">DecodeFrame</a></dd><dd><a class="el" href="structDecodeSignal.html">DecodeSignal</a></dd></dl>
<dt class="alphachar"><a id="letter_A" name="letter_A">A</a></dt>
<dd><a class="el" href="structAttributeAssignment.html">AttributeAssignment</a></dd><dd><a class="el" href="structAttributeDefinition.html">AttributeDefinition</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_D" name="letter_D">D</a></dt>
<dd><a class="el" href="classDbcAttributeHandler.html">DbcAttributeHandler</a></dd><dd><a class="el" href="classDbcCommentHandler.html">DbcCommentHandler</a></dd><dd><a class="el" href="structDbcDatabase.html">DbcDatabase</a></dd><dd><a class="el" href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a></dd><dd><a class="el" href="classDbcDecoder.html">DbcDecoder</a></dd><dd><a class="el" href="structDbcDiagnostic.html">DbcDiagnostic</a></dd><dd><a class="el" href="classDbcDiagnosticError.html">DbcDiagnosticError</a></dd><dd><a class="el" href="classDbcFrameHandler.html">DbcFrameHandler</a></dd><dd><a class="el" href="classDbcHeaderHandler.html">DbcHeaderHandler</a></dd><dd><a class="el" href="structDbcParseContext.html">DbcParseContext</a></dd><dd><a class="el" href="classDbcParser.html">DbcParser</a></dd><dd><a class="el" href="structDbcParseResult.html">DbcParseResult</a></dd><dd><a class="el" href="structDbcParserOptions.html">DbcParserOptions</a></dd><dd><a class="el" href="classDbcSignalHandler.html">DbcSignalHandler</a></dd><dd><a class="el" href="classDbcStatementDispatcher.html">DbcStatementDispatcher</a></dd><dd><a class="el" href="classDbcStatementHandler.html">DbcStatementHandler</a></dd><dd><a class="el" href="classDbcTreeBuilder.html">DbcTreeBuilder</a></dd><dd><a class="el" href="classDbcTreeModel.html">DbcTreeModel</a></dd><dd><a class="el" href="classDbcUnsupportedMultiplexingHandler.html">DbcUnsupportedMultiplexingHandler</a></dd><dd><a class="el" href="classDbcValueDescriptionHandler.html">DbcValueDescriptionHandler</a></dd><dd><a class="el" href="classDecodeDatabase.html">DecodeDatabase</a></dd><dd><a class="el" href="structDecodedFrameValue.html">DecodedFrameValue</a></dd><dd><a class="el" href="structDecodedSignalValue.html">DecodedSignalValue</a></dd><dd><a class="el" href="structDecodeFrame.html">DecodeFrame</a></dd><dd><a class="el" href="structDecodeSignal.html">DecodeSignal</a></dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_F" name="letter_F">F</a></dt>
<dd><a class="el" href="structFrameInfo.html">FrameInfo</a></dd><dd><a class="el" href="structFrameKey.html">FrameKey</a></dd><dd><a class="el" href="structFrameKeyHasher.html">FrameKeyHasher</a></dd></dl>
<dl class="classindex even">
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_M" name="letter_M">M</a></dt>
<dd><a class="el" href="structMultiplexing.html">Multiplexing</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_P" name="letter_P">P</a></dt>
<dd><a class="el" href="structPendingValueDescriptions.html">PendingValueDescriptions</a></dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_P" name="letter_P">P</a></dt>
<dd><a class="el" href="structPendingAttribute.html">PendingAttribute</a></dd><dd><a class="el" href="structPendingComment.html">PendingComment</a></dd><dd><a class="el" href="structPendingValueDescriptions.html">PendingValueDescriptions</a></dd><dd><a class="el" href="structPgnLookupResult.html">PgnLookupResult</a></dd></dl>
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_R" name="letter_R">R</a></dt>
<dd><a class="el" href="structRawCanFrame.html">RawCanFrame</a></dd></dl>
<dl class="classindex odd">
<dl class="classindex even">
<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
<dd><a class="el" href="structSignalInfo.html">SignalInfo</a></dd><dd><a class="el" href="structSignalKey.html">SignalKey</a></dd><dd><a class="el" href="structSignalKeyHasher.html">SignalKeyHasher</a></dd></dl>
<dl class="classindex even">
<dl class="classindex odd">
<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
<dd><a class="el" href="classTreeNode.html">TreeNode</a></dd><dd><a class="el" href="classTypeFactory.html">TypeFactory</a></dd></dl>
</div>
+479
View File
@@ -0,0 +1,479 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_attributes.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">DBC Framework
</div>
<div id="projectbrief">DBC parsing and CAN signal decoding framework</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('dbc__attributes_8cpp_source.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_attributes.cpp</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">// SPDX-License-Identifier: MIT</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#include &quot;dbc_statement_handler.h&quot;</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="preprocessor">#include &lt;charconv&gt;</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;limits&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;set&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">namespace </span>{</div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span> <span class="keyword">struct </span>Token {</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span> std::string text;</div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span> <span class="keywordtype">bool</span> quoted = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span> };</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> std::vector&lt;Token&gt; Tokenize(<span class="keyword">const</span> std::string &amp;text) {</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> std::vector&lt;Token&gt; tokens;</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> std::size_t index = 0U;</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">while</span> (index &lt; text.size()) {</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">const</span> <span class="keywordtype">char</span> character = text[index++];</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordflow">if</span> (character == <span class="charliteral">&#39; &#39;</span> || character == <span class="charliteral">&#39;\t&#39;</span>)</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> Token token;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">if</span> (character == <span class="charliteral">&#39;&quot;&#39;</span>) {</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> token.quoted = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordtype">bool</span> closed = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">while</span> (index &lt; text.size()) {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordtype">char</span> next = text[index++];</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">if</span> (next == <span class="charliteral">&#39;&quot;&#39;</span>) {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> closed = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> }</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">if</span> (next == <span class="charliteral">&#39;\\&#39;</span>) {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">if</span> (index == text.size())</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Incomplete attribute escape.&quot;</span>);</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> next = text[index++];</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">if</span> (next != <span class="charliteral">&#39;&quot;&#39;</span> &amp;&amp; next != <span class="charliteral">&#39;\\&#39;</span>)</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Invalid attribute escape.&quot;</span>);</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> }</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> token.text += next;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> }</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">if</span> (!closed)</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unterminated attribute string.&quot;</span>);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">if</span> (index &lt; text.size() &amp;&amp; text[index] != <span class="charliteral">&#39; &#39;</span> &amp;&amp; text[index] != <span class="charliteral">&#39;\t&#39;</span> &amp;&amp;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> text[index] != <span class="charliteral">&#39;,&#39;</span> &amp;&amp; text[index] != <span class="charliteral">&#39;;&#39;</span>)</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Missing separator after attribute string.&quot;</span>);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (character == <span class="charliteral">&#39;;&#39;</span> || character == <span class="charliteral">&#39;,&#39;</span>) {</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> token.text = character;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> token.text = character;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">while</span> (index &lt; text.size() &amp;&amp; text[index] != <span class="charliteral">&#39; &#39;</span> &amp;&amp; text[index] != <span class="charliteral">&#39;\t&#39;</span> &amp;&amp;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> text[index] != <span class="charliteral">&#39;;&#39;</span> &amp;&amp; text[index] != <span class="charliteral">&#39;,&#39;</span>) {</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">if</span> (text[index] == <span class="charliteral">&#39;&quot;&#39;</span>)</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Missing separator before attribute string.&quot;</span>);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> token.text += text[index++];</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> tokens.push_back(token);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> }</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">if</span> (tokens.empty() || tokens.back().quoted || tokens.back().text != <span class="stringliteral">&quot;;&quot;</span>)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Attribute statement requires a semicolon.&quot;</span>);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> tokens.pop_back();</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keywordflow">return</span> tokens;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> }</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keyword">class </span>AttributeTokens {</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keyword">explicit</span> AttributeTokens(<span class="keyword">const</span> std::string &amp;line) : tokens(Tokenize(line)) {}</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> Token Take() {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">if</span> (position == tokens.size())</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Incomplete attribute statement.&quot;</span>);</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">return</span> tokens[position++];</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> }</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> std::string Word() {</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keyword">const</span> Token token = Take();</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">if</span> (token.quoted || token.text == <span class="stringliteral">&quot;,&quot;</span> || token.text == <span class="stringliteral">&quot;;&quot;</span>)</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Expected an attribute keyword or number.&quot;</span>);</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> token.text;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> std::string Quoted() {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">const</span> Token token = Take();</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">if</span> (!token.quoted)</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Expected a quoted attribute name or string.&quot;</span>);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> token.text;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordtype">bool</span> Empty()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> position == tokens.size(); }</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keywordtype">void</span> End()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> <span class="keywordflow">if</span> (!Empty())</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unexpected trailing attribute fields.&quot;</span>);</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> }</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> std::vector&lt;Token&gt; tokens;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> std::size_t position = 0U;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> };</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> </div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">bool</span> IsScope(<span class="keyword">const</span> std::string &amp;text) {</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">return</span> text == <span class="stringliteral">&quot;BO_&quot;</span> || text == <span class="stringliteral">&quot;SG_&quot;</span> || text == <span class="stringliteral">&quot;BU_&quot;</span> || text == <span class="stringliteral">&quot;EV_&quot;</span>;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> }</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> AttributeScope ParseScope(<span class="keyword">const</span> std::string &amp;text) {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">if</span> (text == <span class="stringliteral">&quot;BO_&quot;</span>) <span class="keywordflow">return</span> AttributeScope::Frame;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">if</span> (text == <span class="stringliteral">&quot;SG_&quot;</span>) <span class="keywordflow">return</span> AttributeScope::Signal;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">if</span> (text == <span class="stringliteral">&quot;BU_&quot;</span>) <span class="keywordflow">return</span> AttributeScope::Node;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">if</span> (text == <span class="stringliteral">&quot;EV_&quot;</span>) <span class="keywordflow">return</span> AttributeScope::Environment;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unsupported attribute scope: &quot;</span> + text);</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> }</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">template</span>&lt;<span class="keyword">class</span> Numeric&gt;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> Numeric ParseNumber(<span class="keyword">const</span> std::string &amp;text) {</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *begin = text.data();</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *end = begin + text.size();</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keywordflow">if</span> (begin != end &amp;&amp; *begin == <span class="charliteral">&#39;+&#39;</span>) {</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> ++begin;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">if</span> (begin != end &amp;&amp; (*begin == <span class="charliteral">&#39;-&#39;</span> || *begin == <span class="charliteral">&#39;+&#39;</span>))</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Invalid attribute number: &quot;</span> + text);</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> }</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> Numeric value = 0;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">const</span> std::from_chars_result parsed = std::from_chars(begin, end, value);</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">if</span> (begin == end || parsed.ec != std::errc() || parsed.ptr != end || !std::isfinite(value))</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Invalid attribute number: &quot;</span> + text);</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordflow">return</span> value;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> }</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> AttributeValue Value(<span class="keyword">const</span> Token &amp;token, <span class="keyword">const</span> <a class="code hl_struct" href="structAttributeDefinition.html">AttributeDefinition</a> &amp;definition, <span class="keywordtype">bool</span> isDefault) {</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> == AttributeType::String) {</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">if</span> (!token.quoted) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Attribute STRING requires quoted text.&quot;</span>);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">return</span> token.text;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> }</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> == AttributeType::Enum &amp;&amp; isDefault &amp;&amp; token.quoted) {</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keywordflow">for</span> (std::size_t index = 0U; index &lt; definition.<a class="code hl_variable" href="structAttributeDefinition.html#a547fe17f6cfc631528f9156e4a509c66">enumValues</a>.size(); ++index) {</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a547fe17f6cfc631528f9156e4a509c66">enumValues</a>[index] == token.text)</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>std::int64_t<span class="keyword">&gt;</span>(index);</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> }</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unknown attribute ENUM default label.&quot;</span>);</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> }</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">if</span> (token.quoted) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Numeric attribute requires an unquoted number.&quot;</span>);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> == AttributeType::Float) {</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">const</span> <span class="keywordtype">double</span> value = ParseNumber&lt;double&gt;(token.text);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keywordflow">if</span> (value &lt; definition.minimum || value &gt; definition.<a class="code hl_variable" href="structAttributeDefinition.html#aa02fe74b5420c2e67c13e610b6bc9713">maximum</a>)</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Attribute FLOAT value outside definition range.&quot;</span>);</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">return</span> value;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> }</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">const</span> std::int64_t value = ParseNumber&lt;std::int64_t&gt;(token.text);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">if</span> (value &lt; definition.integerMinimum || value &gt; definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5ca8f41ea3e921f54d81b8760c1dcfb3">integerMaximum</a>)</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Attribute integer/ENUM value outside definition range.&quot;</span>);</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">return</span> value;</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> }</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordtype">void</span> Define(AttributeTokens &amp;tokens, <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database) {</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <a class="code hl_struct" href="structAttributeDefinition.html">AttributeDefinition</a> definition;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keyword">const</span> Token first = tokens.Take();</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> std::string name = first.text;</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">if</span> (!first.quoted) {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> = ParseScope(first.text);</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> name = tokens.Quoted();</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> }</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span> (name.empty()) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Empty attribute name.&quot;</span>);</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">const</span> std::string type = tokens.Word();</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">if</span> (type == <span class="stringliteral">&quot;INT&quot;</span> || type == <span class="stringliteral">&quot;HEX&quot;</span>) {</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> = type == <span class="stringliteral">&quot;INT&quot;</span> ? AttributeType::Integer : AttributeType::Hex;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#aaf87153bac0b228ad87b88e96f303210">integerMinimum</a> = ParseNumber&lt;std::int64_t&gt;(tokens.Word());</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5ca8f41ea3e921f54d81b8760c1dcfb3">integerMaximum</a> = ParseNumber&lt;std::int64_t&gt;(tokens.Word());</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#aaf87153bac0b228ad87b88e96f303210">integerMinimum</a> &gt; definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5ca8f41ea3e921f54d81b8760c1dcfb3">integerMaximum</a>)</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Reversed attribute integer range.&quot;</span>);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == <span class="stringliteral">&quot;FLOAT&quot;</span>) {</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> = AttributeType::Float;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a18245dba995929a61fd6de1fcdbc8a89">minimum</a> = ParseNumber&lt;double&gt;(tokens.Word());</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#aa02fe74b5420c2e67c13e610b6bc9713">maximum</a> = ParseNumber&lt;double&gt;(tokens.Word());</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a18245dba995929a61fd6de1fcdbc8a89">minimum</a> &gt; definition.<a class="code hl_variable" href="structAttributeDefinition.html#aa02fe74b5420c2e67c13e610b6bc9713">maximum</a>)</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Reversed attribute FLOAT range.&quot;</span>);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == <span class="stringliteral">&quot;STRING&quot;</span>) {</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> = AttributeType::String;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (type == <span class="stringliteral">&quot;ENUM&quot;</span>) {</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> = AttributeType::Enum;</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> std::set&lt;std::string&gt; labels;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">for</span> (;;) {</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keyword">const</span> std::string label = tokens.Quoted();</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">if</span> (!labels.insert(label).second)</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Duplicate attribute ENUM label.&quot;</span>);</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a547fe17f6cfc631528f9156e4a509c66">enumValues</a>.push_back(label);</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">if</span> (tokens.Empty()) <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keyword">const</span> Token separator = tokens.Take();</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="keywordflow">if</span> (separator.quoted || separator.text != <span class="stringliteral">&quot;,&quot;</span>) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Expected ENUM comma.&quot;</span>);</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> }</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5ca8f41ea3e921f54d81b8760c1dcfb3">integerMaximum</a> = <span class="keyword">static_cast&lt;</span>std::int64_t<span class="keyword">&gt;</span>(definition.<a class="code hl_variable" href="structAttributeDefinition.html#a547fe17f6cfc631528f9156e4a509c66">enumValues</a>.size() - 1U);</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unsupported attribute definition type: &quot;</span> + type);</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> }</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> tokens.End();</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">if</span> (name == <span class="stringliteral">&quot;VFrameFormat&quot;</span> &amp;&amp; (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> != AttributeScope::Frame || definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> != AttributeType::Enum))</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;VFrameFormat requires a BO_ ENUM definition.&quot;</span>);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">if</span> (name == <span class="stringliteral">&quot;GenMsgCycleTime&quot;</span> &amp;&amp; (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> != AttributeScope::Frame ||</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> != AttributeType::Integer &amp;&amp; definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">type</a> != AttributeType::Hex)))</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;GenMsgCycleTime requires a BO_ integer definition.&quot;</span>);</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> <span class="keywordflow">if</span> (!database.<a class="code hl_variable" href="structDbcDatabase.html#a14862245081989f2abf126b5ea6dfdfa">attributeDefinitions</a>.emplace(name, definition).second)</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Duplicate attribute definition: &quot;</span> + name);</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> }</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> <a class="code hl_struct" href="structAttributeDefinition.html">AttributeDefinition</a> &amp;FindDefinition(<a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database, <span class="keyword">const</span> std::string &amp;name) {</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keyword">const</span> std::map&lt;std::string, AttributeDefinition&gt;::iterator found = database.<a class="code hl_variable" href="structDbcDatabase.html#a14862245081989f2abf126b5ea6dfdfa">attributeDefinitions</a>.find(name);</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> <span class="keywordflow">if</span> (found == database.<a class="code hl_variable" href="structDbcDatabase.html#a14862245081989f2abf126b5ea6dfdfa">attributeDefinitions</a>.end())</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Undefined attribute: &quot;</span> + name);</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">return</span> found-&gt;second;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> }</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keywordtype">void</span> ParseId(<span class="keyword">const</span> std::string &amp;text, <a class="code hl_struct" href="structAttributeAssignment.html">AttributeAssignment</a> &amp;assignment) {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">const</span> std::int64_t raw = ParseNumber&lt;std::int64_t&gt;(text);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">if</span> (raw &lt; 0 || raw &gt; std::numeric_limits&lt;std::uint32_t&gt;::max() || (raw &amp; 0x60000000U) != 0)</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Invalid attribute CAN ID.&quot;</span>);</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">const</span> std::uint32_t <span class="keywordtype">id</span> = <span class="keyword">static_cast&lt;</span>std::uint32_t<span class="keyword">&gt;</span>(raw);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a330ae1a34c342b0352115a83dd31aab8">canId</a> = <span class="keywordtype">id</span> &amp; 0x1fffffffU;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a024a249cc63dbfbf337eea395fe3471e">isExtended</a> = (<span class="keywordtype">id</span> &amp; 0x80000000U) != 0U || <span class="keywordtype">id</span> &gt; 0x7ffU;</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> }</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> </div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> AttributeMap &amp;Target(<a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database, <span class="keyword">const</span> <a class="code hl_struct" href="structAttributeAssignment.html">AttributeAssignment</a> &amp;assignment) {</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">if</span> (assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> == AttributeScope::Database) <span class="keywordflow">return</span> database.<a class="code hl_variable" href="structDbcDatabase.html#a321839ad81af176444358eb23114eaee">attributes</a>;</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">for</span> (<a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> &amp;frame: database.frames) {</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> <span class="keywordflow">if</span> (frame.canId != assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a330ae1a34c342b0352115a83dd31aab8">canId</a> || frame.isExtended != assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a024a249cc63dbfbf337eea395fe3471e">isExtended</a>) <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="keywordflow">if</span> (assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> == AttributeScope::Frame) <span class="keywordflow">return</span> frame.attributes;</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">for</span> (<a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> &amp;signal: frame.signals) {</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> <span class="keywordflow">if</span> (signal.name == assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50059e42e5e5b944050f3290ce84ac66">targetName</a>) <span class="keywordflow">return</span> signal.attributes;</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> }</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unresolved attribute signal: &quot;</span> + assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50059e42e5e5b944050f3290ce84ac66">targetName</a>);</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> }</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Unresolved attribute frame.&quot;</span>);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> }</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> <span class="keywordtype">void</span> ValidateCycleTime(<span class="keyword">const</span> std::string &amp;name, <span class="keyword">const</span> AttributeValue &amp;value) {</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> <span class="keywordflow">if</span> (name != <span class="stringliteral">&quot;GenMsgCycleTime&quot;</span>) <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> <span class="keyword">const</span> std::int64_t milliseconds = std::get&lt;std::int64_t&gt;(value);</div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> <span class="keywordflow">if</span> (milliseconds &lt; 0 || milliseconds &gt; std::numeric_limits&lt;std::uint32_t&gt;::max())</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;GenMsgCycleTime must fit unsigned 32-bit milliseconds.&quot;</span>);</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> }</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> </div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> <span class="keywordtype">void</span> ApplyDefault(<a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database, <span class="keyword">const</span> std::string &amp;name, <span class="keyword">const</span> <a class="code hl_struct" href="structAttributeDefinition.html">AttributeDefinition</a> &amp;definition) {</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">if</span> (!definition.<a class="code hl_variable" href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">defaultValue</a>) <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> == AttributeScope::Database) {</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> database.<a class="code hl_variable" href="structDbcDatabase.html#a321839ad81af176444358eb23114eaee">attributes</a>[name] = *definition.<a class="code hl_variable" href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">defaultValue</a>;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> }</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> != AttributeScope::Frame &amp;&amp; definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> != AttributeScope::Signal)</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">for</span> (<a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> &amp;frame: database.frames) {</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> == AttributeScope::Frame) frame.attributes[name] = *definition.<a class="code hl_variable" href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">defaultValue</a>;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a> == AttributeScope::Signal) {</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">for</span> (<a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> &amp;signal: frame.signals) signal.attributes[name] = *definition.defaultValue;</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> }</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> }</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> }</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span>}<span class="comment">// namespace</span></div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
<div class="foldopen" id="foldopen00251" data-start="{" data-end="}">
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"><a class="line" href="classDbcAttributeHandler.html#a397f23259b7ff79abb4b5141489caa83"> 251</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="classDbcAttributeHandler.html#a397f23259b7ff79abb4b5141489caa83">DbcAttributeHandler::Handle</a>(<span class="keyword">const</span> std::string &amp;line, <a class="code hl_struct" href="structDbcParseContext.html">DbcParseContext</a> &amp;context)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> context.<a class="code hl_variable" href="structDbcParseContext.html#afbfa4b26a58b41ada3dabc619066035c">pendingAttributes</a>.push_back({line, context.<a class="code hl_variable" href="structDbcParseContext.html#a57f5a7f613ecd0dadbafa7af736b7e54">lineNumber</a>});</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span>}</div>
</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
<div class="foldopen" id="foldopen00255" data-start="{" data-end="}">
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="structDbcParseContext.html#a1ac7f4a54550aaddef08749806f87001"> 255</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="structDbcParseContext.html#a1ac7f4a54550aaddef08749806f87001">DbcParseContext::ResolveAttributes</a>(<span class="keyword">const</span> std::string &amp;filePath, std::vector&lt;DbcDiagnostic&gt; &amp;diagnostics) {</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> std::map&lt;std::string, std::size_t&gt; defaultLines;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> std::vector&lt;std::size_t&gt; assignmentLines;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="comment">// Resolve each phase independently of source ordering.</span></div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keyword">const</span> <span class="keywordtype">char</span> *keywords[] = {<span class="stringliteral">&quot;BA_DEF_&quot;</span>, <span class="stringliteral">&quot;BA_DEF_DEF_&quot;</span>, <span class="stringliteral">&quot;BA_&quot;</span>};</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keywordtype">char</span> *phase: keywords) {</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="structPendingAttribute.html">PendingAttribute</a> &amp;pending: <a class="code hl_variable" href="structDbcParseContext.html#afbfa4b26a58b41ada3dabc619066035c">pendingAttributes</a>) {</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keyword">const</span> std::string keyword = pending.statement.substr(0U, pending.statement.find_first_of(<span class="stringliteral">&quot; \t&quot;</span>));</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">if</span> (keyword != phase) <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> <span class="keywordflow">try</span> {</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> AttributeTokens tokens(pending.statement);</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> tokens.Word();</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keywordflow">if</span> (keyword == <span class="stringliteral">&quot;BA_DEF_&quot;</span>) {</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> Define(tokens, <a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> }</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">const</span> std::string name = tokens.Quoted();</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> <a class="code hl_struct" href="structAttributeDefinition.html">AttributeDefinition</a> &amp;definition = FindDefinition(<a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>, name);</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">if</span> (keyword == <span class="stringliteral">&quot;BA_DEF_DEF_&quot;</span>) {</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <span class="keywordflow">if</span> (definition.<a class="code hl_variable" href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">defaultValue</a>) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Duplicate attribute default: &quot;</span> + name);</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> definition.<a class="code hl_variable" href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">defaultValue</a> = Value(tokens.Take(), definition, <span class="keyword">true</span>);</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> ValidateCycleTime(name, *definition.<a class="code hl_variable" href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">defaultValue</a>);</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> tokens.End();</div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> defaultLines[name] = pending.lineNumber;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> ApplyDefault(<a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>, name, definition);</div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> }</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> <a class="code hl_struct" href="structAttributeAssignment.html">AttributeAssignment</a> assignment;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> assignment.<a class="code hl_variable" href="structAttributeAssignment.html#aa8707eddd2d3a2de559fe44354a514cc">name</a> = name;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> Token value = tokens.Take();</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">if</span> (!value.quoted &amp;&amp; IsScope(value.text)) {</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> = ParseScope(value.text);</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> <span class="keywordflow">if</span> (assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> == AttributeScope::Frame || assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> == AttributeScope::Signal)</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> ParseId(tokens.Word(), assignment);</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> <span class="keywordflow">if</span> (assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> != AttributeScope::Frame)</div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50059e42e5e5b944050f3290ce84ac66">targetName</a> = tokens.Word();</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> value = tokens.Take();</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> }</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordflow">if</span> (assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> != definition.<a class="code hl_variable" href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">scope</a>) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Attribute assignment scope differs from definition.&quot;</span>);</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a93de8c51c5154219bf18beadcec5708f">value</a> = Value(value, definition, <span class="keyword">false</span>);</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> ValidateCycleTime(name, assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a93de8c51c5154219bf18beadcec5708f">value</a>);</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> tokens.End();</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> <span class="comment">// Repeated explicit assignments use the last value, matching comments.</span></div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">if</span> (assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> != AttributeScope::Node &amp;&amp; assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> != AttributeScope::Environment)</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> Target(<a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>, assignment)[name] = assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a93de8c51c5154219bf18beadcec5708f">value</a>;</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>.<a class="code hl_variable" href="structDbcDatabase.html#aa7bdf56eb8b7ab5b873e1c096b46d8b6">attributeAssignments</a>.push_back(assignment);</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> assignmentLines.push_back(pending.lineNumber);</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception &amp;error) {</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> <span class="keywordflow">throw</span> <a class="code hl_class" href="classDbcDiagnosticError.html">DbcDiagnosticError</a>(DbcDiagnosticCode::InvalidAttribute, filePath, pending.lineNumber, error.what());</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> }</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> }</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> }</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">for</span> (<a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> &amp;frame: <a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>) {</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> AttributeMap::value_type &amp;attribute: frame.attributes) {</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> <span class="keywordflow">if</span> (attribute.first != <span class="stringliteral">&quot;VFrameFormat&quot;</span> &amp;&amp; attribute.first != <span class="stringliteral">&quot;GenMsgCycleTime&quot;</span>) <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> std::size_t line = defaultLines[attribute.first];</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="keywordflow">for</span> (std::size_t index = 0U; index &lt; <a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>.<a class="code hl_variable" href="structDbcDatabase.html#aa7bdf56eb8b7ab5b873e1c096b46d8b6">attributeAssignments</a>.size(); ++index) {</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keyword">const</span> <a class="code hl_struct" href="structAttributeAssignment.html">AttributeAssignment</a> &amp;assignment = <a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>.<a class="code hl_variable" href="structDbcDatabase.html#aa7bdf56eb8b7ab5b873e1c096b46d8b6">attributeAssignments</a>[index];</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">if</span> (assignment.<a class="code hl_variable" href="structAttributeAssignment.html#aa8707eddd2d3a2de559fe44354a514cc">name</a> == attribute.first &amp;&amp; assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">scope</a> == AttributeScope::Frame &amp;&amp;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a330ae1a34c342b0352115a83dd31aab8">canId</a> == frame.canId &amp;&amp; assignment.<a class="code hl_variable" href="structAttributeAssignment.html#a024a249cc63dbfbf337eea395fe3471e">isExtended</a> == frame.isExtended)</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> line = assignmentLines[index];</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> }</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keyword">const</span> std::int64_t value = std::get&lt;std::int64_t&gt;(attribute.second);</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> <span class="keywordflow">if</span> (attribute.first == <span class="stringliteral">&quot;GenMsgCycleTime&quot;</span>) {</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> frame.cycleTimeMs = <span class="keyword">static_cast&lt;</span>std::uint32_t<span class="keyword">&gt;</span>(value);</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> }</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> frame.frameFormat = <a class="code hl_variable" href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">database</a>.<a class="code hl_variable" href="structDbcDatabase.html#a14862245081989f2abf126b5ea6dfdfa">attributeDefinitions</a>.at(attribute.first).enumValues[<span class="keyword">static_cast&lt;</span>std::size_t<span class="keyword">&gt;</span>(value)];</div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> <span class="keyword">const</span> std::string &amp;format = *frame.frameFormat;</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> std::string warning;</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> <span class="keywordflow">if</span> (format != <span class="stringliteral">&quot;StandardCAN&quot;</span> &amp;&amp; format != <span class="stringliteral">&quot;ExtendedCAN&quot;</span>)</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> warning = <span class="stringliteral">&quot;Unsupported VFrameFormat &#39;&quot;</span> + format + <span class="stringliteral">&quot;&#39; is preserved; decoding may be incomplete.&quot;</span>;</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keywordflow">else</span> <span class="keywordflow">if</span> ((format == <span class="stringliteral">&quot;ExtendedCAN&quot;</span>) != frame.isExtended)</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> warning = <span class="stringliteral">&quot;VFrameFormat &#39;&quot;</span> + format + <span class="stringliteral">&quot;&#39; conflicts with the BO_ CAN ID; ID interpretation is unchanged.&quot;</span>;</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">if</span> (!warning.empty())</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> diagnostics.push_back({DbcDiagnosticSeverity::Warning, DbcDiagnosticCode::UnsupportedAttribute, filePath, line, warning});</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> }</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> }</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span>}</div>
</div>
<div class="ttc" id="aclassDbcAttributeHandler_html_a397f23259b7ff79abb4b5141489caa83"><div class="ttname"><a href="classDbcAttributeHandler.html#a397f23259b7ff79abb4b5141489caa83">DbcAttributeHandler::Handle</a></div><div class="ttdeci">void Handle(const std::string &amp;line, DbcParseContext &amp;context) const override</div><div class="ttdoc">Process a trimmed statement using state belonging to this parse.</div><div class="ttdef"><b>Definition</b> <a href="dbc__attributes_8cpp_source.html#l00251">dbc_attributes.cpp:251</a></div></div>
<div class="ttc" id="aclassDbcDiagnosticError_html"><div class="ttname"><a href="classDbcDiagnosticError.html">DbcDiagnosticError</a></div><div class="ttdef"><b>Definition</b> <a href="dbc__statement__handler_8h_source.html#l00032">dbc_statement_handler.h:32</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html"><div class="ttname"><a href="structAttributeAssignment.html">AttributeAssignment</a></div><div class="ttdoc">Explicit assignment; defaults remain on definitions.</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00059">attributes.h:59</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a024a249cc63dbfbf337eea395fe3471e"><div class="ttname"><a href="structAttributeAssignment.html#a024a249cc63dbfbf337eea395fe3471e">AttributeAssignment::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00063">attributes.h:63</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a330ae1a34c342b0352115a83dd31aab8"><div class="ttname"><a href="structAttributeAssignment.html#a330ae1a34c342b0352115a83dd31aab8">AttributeAssignment::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00062">attributes.h:62</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a50059e42e5e5b944050f3290ce84ac66"><div class="ttname"><a href="structAttributeAssignment.html#a50059e42e5e5b944050f3290ce84ac66">AttributeAssignment::targetName</a></div><div class="ttdeci">std::string targetName</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00064">attributes.h:64</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a50405e8db9e4536015f9adc5ba360270"><div class="ttname"><a href="structAttributeAssignment.html#a50405e8db9e4536015f9adc5ba360270">AttributeAssignment::scope</a></div><div class="ttdeci">AttributeScope scope</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00061">attributes.h:61</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_a93de8c51c5154219bf18beadcec5708f"><div class="ttname"><a href="structAttributeAssignment.html#a93de8c51c5154219bf18beadcec5708f">AttributeAssignment::value</a></div><div class="ttdeci">AttributeValue value</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00065">attributes.h:65</a></div></div>
<div class="ttc" id="astructAttributeAssignment_html_aa8707eddd2d3a2de559fe44354a514cc"><div class="ttname"><a href="structAttributeAssignment.html#aa8707eddd2d3a2de559fe44354a514cc">AttributeAssignment::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00060">attributes.h:60</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html"><div class="ttname"><a href="structAttributeDefinition.html">AttributeDefinition</a></div><div class="ttdoc">Attribute type, permitted range, and optional default.</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00042">attributes.h:42</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a18245dba995929a61fd6de1fcdbc8a89"><div class="ttname"><a href="structAttributeDefinition.html#a18245dba995929a61fd6de1fcdbc8a89">AttributeDefinition::minimum</a></div><div class="ttdeci">double minimum</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00047">attributes.h:47</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a547fe17f6cfc631528f9156e4a509c66"><div class="ttname"><a href="structAttributeDefinition.html#a547fe17f6cfc631528f9156e4a509c66">AttributeDefinition::enumValues</a></div><div class="ttdeci">std::vector&lt; std::string &gt; enumValues</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00049">attributes.h:49</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a5ca8f41ea3e921f54d81b8760c1dcfb3"><div class="ttname"><a href="structAttributeDefinition.html#a5ca8f41ea3e921f54d81b8760c1dcfb3">AttributeDefinition::integerMaximum</a></div><div class="ttdeci">std::int64_t integerMaximum</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00046">attributes.h:46</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a5de5484174a8c5f6b309041089d20afc"><div class="ttname"><a href="structAttributeDefinition.html#a5de5484174a8c5f6b309041089d20afc">AttributeDefinition::type</a></div><div class="ttdeci">AttributeType type</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00044">attributes.h:44</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_a5f109f0ec94eb04c3f52c116366aefdf"><div class="ttname"><a href="structAttributeDefinition.html#a5f109f0ec94eb04c3f52c116366aefdf">AttributeDefinition::scope</a></div><div class="ttdeci">AttributeScope scope</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00043">attributes.h:43</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_aa02fe74b5420c2e67c13e610b6bc9713"><div class="ttname"><a href="structAttributeDefinition.html#aa02fe74b5420c2e67c13e610b6bc9713">AttributeDefinition::maximum</a></div><div class="ttdeci">double maximum</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00048">attributes.h:48</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_aaf87153bac0b228ad87b88e96f303210"><div class="ttname"><a href="structAttributeDefinition.html#aaf87153bac0b228ad87b88e96f303210">AttributeDefinition::integerMinimum</a></div><div class="ttdeci">std::int64_t integerMinimum</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00045">attributes.h:45</a></div></div>
<div class="ttc" id="astructAttributeDefinition_html_ae0949edf67f9d4e60e4cb376a95da4f2"><div class="ttname"><a href="structAttributeDefinition.html#ae0949edf67f9d4e60e4cb376a95da4f2">AttributeDefinition::defaultValue</a></div><div class="ttdeci">std::optional&lt; AttributeValue &gt; defaultValue</div><div class="ttdef"><b>Definition</b> <a href="attributes_8h_source.html#l00050">attributes.h:50</a></div></div>
<div class="ttc" id="astructDbcDatabase_html"><div class="ttname"><a href="structDbcDatabase.html">DbcDatabase</a></div><div class="ttdoc">Parsed DBC content stored in a simple internal form.</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00022">dbc_database.h:22</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_a14862245081989f2abf126b5ea6dfdfa"><div class="ttname"><a href="structDbcDatabase.html#a14862245081989f2abf126b5ea6dfdfa">DbcDatabase::attributeDefinitions</a></div><div class="ttdeci">std::map&lt; std::string, AttributeDefinition &gt; attributeDefinitions</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00024">dbc_database.h:24</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_a2cade5d0234ee816132127542f8c612b"><div class="ttname"><a href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">DbcDatabase::frames</a></div><div class="ttdeci">std::vector&lt; FrameInfo &gt; frames</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00023">dbc_database.h:23</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_a321839ad81af176444358eb23114eaee"><div class="ttname"><a href="structDbcDatabase.html#a321839ad81af176444358eb23114eaee">DbcDatabase::attributes</a></div><div class="ttdeci">AttributeMap attributes</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00026">dbc_database.h:26</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_aa7bdf56eb8b7ab5b873e1c096b46d8b6"><div class="ttname"><a href="structDbcDatabase.html#aa7bdf56eb8b7ab5b873e1c096b46d8b6">DbcDatabase::attributeAssignments</a></div><div class="ttdeci">std::vector&lt; AttributeAssignment &gt; attributeAssignments</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00025">dbc_database.h:25</a></div></div>
<div class="ttc" id="astructDbcParseContext_html"><div class="ttname"><a href="structDbcParseContext.html">DbcParseContext</a></div><div class="ttdef"><b>Definition</b> <a href="dbc__statement__handler_8h_source.html#l00050">dbc_statement_handler.h:50</a></div></div>
<div class="ttc" id="astructDbcParseContext_html_a1ac7f4a54550aaddef08749806f87001"><div class="ttname"><a href="structDbcParseContext.html#a1ac7f4a54550aaddef08749806f87001">DbcParseContext::ResolveAttributes</a></div><div class="ttdeci">void ResolveAttributes(const std::string &amp;filePath, std::vector&lt; DbcDiagnostic &gt; &amp;diagnostics)</div><div class="ttdoc">Resolve definitions, defaults, then assignments; append format warnings.</div><div class="ttdef"><b>Definition</b> <a href="dbc__attributes_8cpp_source.html#l00255">dbc_attributes.cpp:255</a></div></div>
<div class="ttc" id="astructDbcParseContext_html_a57f5a7f613ecd0dadbafa7af736b7e54"><div class="ttname"><a href="structDbcParseContext.html#a57f5a7f613ecd0dadbafa7af736b7e54">DbcParseContext::lineNumber</a></div><div class="ttdeci">std::size_t lineNumber</div><div class="ttdef"><b>Definition</b> <a href="dbc__statement__handler_8h_source.html#l00054">dbc_statement_handler.h:54</a></div></div>
<div class="ttc" id="astructDbcParseContext_html_a79bad0b8302e2156670461bab529259c"><div class="ttname"><a href="structDbcParseContext.html#a79bad0b8302e2156670461bab529259c">DbcParseContext::database</a></div><div class="ttdeci">DbcDatabase &amp; database</div><div class="ttdef"><b>Definition</b> <a href="dbc__statement__handler_8h_source.html#l00051">dbc_statement_handler.h:51</a></div></div>
<div class="ttc" id="astructDbcParseContext_html_afbfa4b26a58b41ada3dabc619066035c"><div class="ttname"><a href="structDbcParseContext.html#afbfa4b26a58b41ada3dabc619066035c">DbcParseContext::pendingAttributes</a></div><div class="ttdeci">std::vector&lt; PendingAttribute &gt; pendingAttributes</div><div class="ttdef"><b>Definition</b> <a href="dbc__statement__handler_8h_source.html#l00065">dbc_statement_handler.h:65</a></div></div>
<div class="ttc" id="astructFrameInfo_html"><div class="ttname"><a href="structFrameInfo.html">FrameInfo</a></div><div class="ttdoc">Describes one CAN frame from a DBC file.</div><div class="ttdef"><b>Definition</b> <a href="frame__info_8h_source.html#l00025">frame_info.h:25</a></div></div>
<div class="ttc" id="astructPendingAttribute_html"><div class="ttname"><a href="structPendingAttribute.html">PendingAttribute</a></div><div class="ttdoc">Attribute statement retained for ordered resolution.</div><div class="ttdef"><b>Definition</b> <a href="dbc__statement__handler_8h_source.html#l00044">dbc_statement_handler.h:44</a></div></div>
<div class="ttc" id="astructSignalInfo_html"><div class="ttname"><a href="structSignalInfo.html">SignalInfo</a></div><div class="ttdoc">Describes one signal inside a DBC frame.</div><div class="ttdef"><b>Definition</b> <a href="signal__info_8h_source.html#l00025">signal_info.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_4270bfced15e0e73154b13468c7c9ad9.html">core</a></li><li class="navelem"><b>dbc_attributes.cpp</b></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
</ul>
</div>
</body>
</html>
File diff suppressed because it is too large. Load diff
+3 -2
View File
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('dbc__database_8h.html',''); initResiza
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<p>Parsed DBC database and attribute metadata.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;vector&gt;</code><br />
<code>#include &quot;<a class="el" href="frame__info_8h_source.html">frame_info.h</a>&quot;</code><br />
@@ -110,7 +110,8 @@ Classes</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </p>
<div class="textblock"><p>Parsed DBC database and attribute metadata. </p>
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</p>
<p>Licensed under the MIT License. See LICENSE file in the project root for full license text. </p>
<p class="definition">Definition in file <a class="el" href="dbc__database_8h_source.html">dbc_database.h</a>.</p>
+10 -4
View File
@@ -109,13 +109,19 @@ $(document).ready(function(){initNavTree('dbc__database_8h_source.html',''); ini
<div class="foldopen" id="foldopen00022" data-start="{" data-end="};">
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"><a class="line" href="structDbcDatabase.html"> 22</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> {</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"> 23</a></span> std::vector&lt;FrameInfo&gt; <a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>; </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>};</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="structDbcDatabase.html#a14862245081989f2abf126b5ea6dfdfa"> 24</a></span> std::map&lt;std::string, AttributeDefinition&gt; <a class="code hl_variable" href="structDbcDatabase.html#a14862245081989f2abf126b5ea6dfdfa">attributeDefinitions</a> = {}; </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structDbcDatabase.html#aa7bdf56eb8b7ab5b873e1c096b46d8b6"> 25</a></span> std::vector&lt;AttributeAssignment&gt; <a class="code hl_variable" href="structDbcDatabase.html#aa7bdf56eb8b7ab5b873e1c096b46d8b6">attributeAssignments</a> = {}; </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structDbcDatabase.html#a321839ad81af176444358eb23114eaee"> 26</a></span> AttributeMap <a class="code hl_variable" href="structDbcDatabase.html#a321839ad81af176444358eb23114eaee">attributes</a> = {}; </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span>};</div>
</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#endif </span><span class="comment">/* DBC_DATABASE_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aframe__info_8h_html"><div class="ttname"><a href="frame__info_8h.html">frame_info.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</div></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="preprocessor">#endif </span><span class="comment">/* DBC_DATABASE_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aframe__info_8h_html"><div class="ttname"><a href="frame__info_8h.html">frame_info.h</a></div><div class="ttdoc">Parsed CAN frame metadata.</div></div>
<div class="ttc" id="astructDbcDatabase_html"><div class="ttname"><a href="structDbcDatabase.html">DbcDatabase</a></div><div class="ttdoc">Parsed DBC content stored in a simple internal form.</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00022">dbc_database.h:22</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_a14862245081989f2abf126b5ea6dfdfa"><div class="ttname"><a href="structDbcDatabase.html#a14862245081989f2abf126b5ea6dfdfa">DbcDatabase::attributeDefinitions</a></div><div class="ttdeci">std::map&lt; std::string, AttributeDefinition &gt; attributeDefinitions</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00024">dbc_database.h:24</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_a2cade5d0234ee816132127542f8c612b"><div class="ttname"><a href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">DbcDatabase::frames</a></div><div class="ttdeci">std::vector&lt; FrameInfo &gt; frames</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00023">dbc_database.h:23</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_a321839ad81af176444358eb23114eaee"><div class="ttname"><a href="structDbcDatabase.html#a321839ad81af176444358eb23114eaee">DbcDatabase::attributes</a></div><div class="ttdeci">AttributeMap attributes</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00026">dbc_database.h:26</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_aa7bdf56eb8b7ab5b873e1c096b46d8b6"><div class="ttname"><a href="structDbcDatabase.html#aa7bdf56eb8b7ab5b873e1c096b46d8b6">DbcDatabase::attributeAssignments</a></div><div class="ttdeci">std::vector&lt; AttributeAssignment &gt; attributeAssignments</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00025">dbc_database.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+3 -2
View File
@@ -94,14 +94,15 @@ $(document).ready(function(){initNavTree('dbc__decode__builder_8cpp.html',''); i
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<p>Conversion of parsed metadata to runtime definitions.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="dbc__decode__builder_8h_source.html">dbc_decode_builder.h</a>&quot;</code><br />
<code>#include &lt;utility&gt;</code><br />
</div>
<p><a href="dbc__decode__builder_8cpp_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </p>
<div class="textblock"><p>Conversion of parsed metadata to runtime definitions. </p>
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</p>
<p>Licensed under the MIT License. See LICENSE file in the project root for full license text. </p>
<p class="definition">Definition in file <a class="el" href="dbc__decode__builder_8cpp_source.html">dbc_decode_builder.cpp</a>.</p>
+72 -63
View File
@@ -110,73 +110,82 @@ $(document).ready(function(){initNavTree('dbc__decode__builder_8cpp_source.html'
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> &amp;sourceFrame: source.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>) {</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> targetFrame;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">name</a> = sourceFrame.name;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">canId</a> = sourceFrame.canId;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">isExtended</a> = sourceFrame.isExtended;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">dlc</a> = sourceFrame.dlc;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">pgn</a> = sourceFrame.pgn;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">hasPgn</a> = sourceFrame.hasPgn;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">transmitter</a> = sourceFrame.transmitter;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">comment</a> = sourceFrame.comment;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> targetFrame.signals.reserve(sourceFrame.signals.size());</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> &amp;sourceSignal: sourceFrame.signals) {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> targetSignal;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> targetSignal.multiplexing = sourceSignal.multiplexing;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a> = sourceSignal.name;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a> = sourceSignal.startBit;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> = sourceSignal.length;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> = sourceSignal.isLittleEndian ? ByteOrder::Intel : ByteOrder::Motorola;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> = sourceSignal.isSigned ? ValueType::Signed : ValueType::Unsigned;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">factor</a> = sourceSignal.factor;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">offset</a> = sourceSignal.offset;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">minimum</a> = sourceSignal.minimum;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">maximum</a> = sourceSignal.maximum;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">unit</a> = sourceSignal.unit;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">receivers</a> = sourceSignal.receivers;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">comment</a> = sourceSignal.comment;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a822155d9bf4ed5f3300c9e9befe606ff">valueDescriptions</a> = sourceSignal.valueDescriptions;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> targetFrame.signals.push_back(std::move(targetSignal));</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> }</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> frames.push_back(std::move(targetFrame));</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> }</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a>(frames);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span>}</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#ad506b03108a40df7e8005638c9c59653">attributes</a> = sourceFrame.attributes;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a475e669f390491a4d99383d3fee51300">frameFormat</a> = sourceFrame.frameFormat;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a732c2f6853d55ce8253db61207fc21d3">cycleTimeMs</a> = sourceFrame.cycleTimeMs;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">name</a> = sourceFrame.name;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">canId</a> = sourceFrame.canId;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">isExtended</a> = sourceFrame.isExtended;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">dlc</a> = sourceFrame.dlc;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">pgn</a> = sourceFrame.pgn;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">hasPgn</a> = sourceFrame.hasPgn;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">transmitter</a> = sourceFrame.transmitter;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">comment</a> = sourceFrame.comment;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> targetFrame.signals.reserve(sourceFrame.signals.size());</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> &amp;sourceSignal: sourceFrame.signals) {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> targetSignal;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a204f65c7ea45a2c148f19c12d922f99b">attributes</a> = sourceSignal.attributes;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a> = sourceSignal.multiplexing;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a> = sourceSignal.name;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a> = sourceSignal.startBit;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> = sourceSignal.length;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> = sourceSignal.isLittleEndian ? ByteOrder::Intel : ByteOrder::Motorola;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> = sourceSignal.isSigned ? ValueType::Signed : ValueType::Unsigned;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">factor</a> = sourceSignal.factor;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">offset</a> = sourceSignal.offset;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">minimum</a> = sourceSignal.minimum;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">maximum</a> = sourceSignal.maximum;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">unit</a> = sourceSignal.unit;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">receivers</a> = sourceSignal.receivers;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">comment</a> = sourceSignal.comment;</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a822155d9bf4ed5f3300c9e9befe606ff">valueDescriptions</a> = sourceSignal.valueDescriptions;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> targetFrame.signals.push_back(std::move(targetSignal));</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> }</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> frames.push_back(std::move(targetFrame));</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> }</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a>(frames);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span>}</div>
</div>
<div class="ttc" id="aclassDbcDecodeBuilder_html_a2bc6386dfb5e58976c42e22c19ec471b"><div class="ttname"><a href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">DbcDecodeBuilder::Build</a></div><div class="ttdeci">DecodeDatabase Build(const DbcDatabase &amp;source) const</div><div class="ttdoc">Build runtime decode database.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decode__builder_8cpp_source.html#l00015">dbc_decode_builder.cpp:15</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00087">decode_database.h:87</a></div></div>
<div class="ttc" id="adbc__decode__builder_8h_html"><div class="ttname"><a href="dbc__decode__builder_8h.html">dbc_decode_builder.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00101">decode_database.h:101</a></div></div>
<div class="ttc" id="adbc__decode__builder_8h_html"><div class="ttname"><a href="dbc__decode__builder_8h.html">dbc_decode_builder.h</a></div><div class="ttdoc">Runtime decode database builder.</div></div>
<div class="ttc" id="astructDbcDatabase_html"><div class="ttname"><a href="structDbcDatabase.html">DbcDatabase</a></div><div class="ttdoc">Parsed DBC content stored in a simple internal form.</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00022">dbc_database.h:22</a></div></div>
<div class="ttc" id="astructDbcDatabase_html_a2cade5d0234ee816132127542f8c612b"><div class="ttname"><a href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">DbcDatabase::frames</a></div><div class="ttdeci">std::vector&lt; FrameInfo &gt; frames</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00023">dbc_database.h:23</a></div></div>
<div class="ttc" id="astructDecodeFrame_html"><div class="ttname"><a href="structDecodeFrame.html">DecodeFrame</a></div><div class="ttdoc">Runtime-ready frame definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00065">decode_database.h:65</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a1d3c54055c0cbceb73adf551f7067f23"><div class="ttname"><a href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">DecodeFrame::pgn</a></div><div class="ttdeci">std::uint32_t pgn</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00070">decode_database.h:70</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a2551102670c4a540fced4c71da0b369d"><div class="ttname"><a href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">DecodeFrame::hasPgn</a></div><div class="ttdeci">bool hasPgn</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00071">decode_database.h:71</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a25819ef907a32391af5c9f7cae9cdb22"><div class="ttname"><a href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">DecodeFrame::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00073">decode_database.h:73</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a3ee2348d781f8f15aaf87e8dcf57ec41"><div class="ttname"><a href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">DecodeFrame::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00068">decode_database.h:68</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a51111ac13988be372d5673d12cf3e060"><div class="ttname"><a href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">DecodeFrame::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00069">decode_database.h:69</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a52e10215388db7df8b541b9d9909edcf"><div class="ttname"><a href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">DecodeFrame::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00067">decode_database.h:67</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_aa0a7f8fd5bfde2148dfd0d838328f579"><div class="ttname"><a href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">DecodeFrame::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00066">decode_database.h:66</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_ad78241dc40c793aabb8495b6989b81a9"><div class="ttname"><a href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">DecodeFrame::transmitter</a></div><div class="ttdeci">std::string transmitter</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00072">decode_database.h:72</a></div></div>
<div class="ttc" id="astructDecodeSignal_html"><div class="ttname"><a href="structDecodeSignal.html">DecodeSignal</a></div><div class="ttdoc">Runtime-ready signal definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00043">decode_database.h:43</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a0fb84e19a0ab3bd50b6f65c1075ebc25"><div class="ttname"><a href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">DecodeSignal::minimum</a></div><div class="ttdeci">double minimum</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00052">decode_database.h:52</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a38eed9ca7581423fd8bfbedcffc12092"><div class="ttname"><a href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">DecodeSignal::unit</a></div><div class="ttdeci">std::string unit</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00054">decode_database.h:54</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a428c39913a366a8476dd291061354391"><div class="ttname"><a href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">DecodeSignal::factor</a></div><div class="ttdeci">double factor</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00050">decode_database.h:50</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a4a6ba87142a9badbf0ca830e9e709cb7"><div class="ttname"><a href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">DecodeSignal::maximum</a></div><div class="ttdeci">double maximum</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00053">decode_database.h:53</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a58cf5844f2272a23dcb9687d912e4780"><div class="ttname"><a href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">DecodeSignal::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00045">decode_database.h:45</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a822155d9bf4ed5f3300c9e9befe606ff"><div class="ttname"><a href="structDecodeSignal.html#a822155d9bf4ed5f3300c9e9befe606ff">DecodeSignal::valueDescriptions</a></div><div class="ttdeci">ValueDescriptions valueDescriptions</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00056">decode_database.h:56</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a92db637af4e224a0ae70173050dc3f74"><div class="ttname"><a href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">DecodeSignal::offset</a></div><div class="ttdeci">double offset</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00051">decode_database.h:51</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a9d37638129263b8902ba5be59baf39a8"><div class="ttname"><a href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">DecodeSignal::valueType</a></div><div class="ttdeci">ValueType valueType</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00049">decode_database.h:49</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aaf5d7527ddf65b6355c2b4f3626df22d"><div class="ttname"><a href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">DecodeSignal::startBit</a></div><div class="ttdeci">std::uint32_t startBit</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00046">decode_database.h:46</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_abdbae62a64d2df716bf60c6b67b30eaa"><div class="ttname"><a href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">DecodeSignal::receivers</a></div><div class="ttdeci">std::vector&lt; std::string &gt; receivers</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00055">decode_database.h:55</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_abdc4c4bb4a67a6d61d6ca81e8a52833d"><div class="ttname"><a href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">DecodeSignal::byteOrder</a></div><div class="ttdeci">ByteOrder byteOrder</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00048">decode_database.h:48</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_acd4ef5ee30421d117b5756854302debb"><div class="ttname"><a href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">DecodeSignal::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00047">decode_database.h:47</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_ae28c905d4a2bc86419c2a8361bfea473"><div class="ttname"><a href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">DecodeSignal::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00057">decode_database.h:57</a></div></div>
<div class="ttc" id="astructFrameInfo_html"><div class="ttname"><a href="structFrameInfo.html">FrameInfo</a></div><div class="ttdoc">Describes one CAN frame from a DBC file.</div><div class="ttdef"><b>Definition</b> <a href="frame__info_8h_source.html#l00024">frame_info.h:24</a></div></div>
<div class="ttc" id="astructSignalInfo_html"><div class="ttname"><a href="structSignalInfo.html">SignalInfo</a></div><div class="ttdoc">Describes one signal inside a DBC frame.</div><div class="ttdef"><b>Definition</b> <a href="signal__info_8h_source.html#l00024">signal_info.h:24</a></div></div>
<div class="ttc" id="astructDecodeFrame_html"><div class="ttname"><a href="structDecodeFrame.html">DecodeFrame</a></div><div class="ttdoc">Runtime-ready frame definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00068">decode_database.h:68</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a1d3c54055c0cbceb73adf551f7067f23"><div class="ttname"><a href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">DecodeFrame::pgn</a></div><div class="ttdeci">std::uint32_t pgn</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00073">decode_database.h:73</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a2551102670c4a540fced4c71da0b369d"><div class="ttname"><a href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">DecodeFrame::hasPgn</a></div><div class="ttdeci">bool hasPgn</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00074">decode_database.h:74</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a25819ef907a32391af5c9f7cae9cdb22"><div class="ttname"><a href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">DecodeFrame::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00076">decode_database.h:76</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a3ee2348d781f8f15aaf87e8dcf57ec41"><div class="ttname"><a href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">DecodeFrame::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00071">decode_database.h:71</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a475e669f390491a4d99383d3fee51300"><div class="ttname"><a href="structDecodeFrame.html#a475e669f390491a4d99383d3fee51300">DecodeFrame::frameFormat</a></div><div class="ttdeci">std::optional&lt; std::string &gt; frameFormat</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00080">decode_database.h:80</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a51111ac13988be372d5673d12cf3e060"><div class="ttname"><a href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">DecodeFrame::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00072">decode_database.h:72</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a52e10215388db7df8b541b9d9909edcf"><div class="ttname"><a href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">DecodeFrame::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00070">decode_database.h:70</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a732c2f6853d55ce8253db61207fc21d3"><div class="ttname"><a href="structDecodeFrame.html#a732c2f6853d55ce8253db61207fc21d3">DecodeFrame::cycleTimeMs</a></div><div class="ttdeci">std::optional&lt; std::uint32_t &gt; cycleTimeMs</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00081">decode_database.h:81</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_aa0a7f8fd5bfde2148dfd0d838328f579"><div class="ttname"><a href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">DecodeFrame::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00069">decode_database.h:69</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_ad506b03108a40df7e8005638c9c59653"><div class="ttname"><a href="structDecodeFrame.html#ad506b03108a40df7e8005638c9c59653">DecodeFrame::attributes</a></div><div class="ttdeci">AttributeMap attributes</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00079">decode_database.h:79</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_ad78241dc40c793aabb8495b6989b81a9"><div class="ttname"><a href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">DecodeFrame::transmitter</a></div><div class="ttdeci">std::string transmitter</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00075">decode_database.h:75</a></div></div>
<div class="ttc" id="astructDecodeSignal_html"><div class="ttname"><a href="structDecodeSignal.html">DecodeSignal</a></div><div class="ttdoc">Runtime-ready signal definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00044">decode_database.h:44</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a0fb84e19a0ab3bd50b6f65c1075ebc25"><div class="ttname"><a href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">DecodeSignal::minimum</a></div><div class="ttdeci">double minimum</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00053">decode_database.h:53</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a204f65c7ea45a2c148f19c12d922f99b"><div class="ttname"><a href="structDecodeSignal.html#a204f65c7ea45a2c148f19c12d922f99b">DecodeSignal::attributes</a></div><div class="ttdeci">AttributeMap attributes</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00060">decode_database.h:60</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a38eed9ca7581423fd8bfbedcffc12092"><div class="ttname"><a href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">DecodeSignal::unit</a></div><div class="ttdeci">std::string unit</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00055">decode_database.h:55</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a428c39913a366a8476dd291061354391"><div class="ttname"><a href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">DecodeSignal::factor</a></div><div class="ttdeci">double factor</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00051">decode_database.h:51</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a4a6ba87142a9badbf0ca830e9e709cb7"><div class="ttname"><a href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">DecodeSignal::maximum</a></div><div class="ttdeci">double maximum</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00054">decode_database.h:54</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a58cf5844f2272a23dcb9687d912e4780"><div class="ttname"><a href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">DecodeSignal::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00046">decode_database.h:46</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a822155d9bf4ed5f3300c9e9befe606ff"><div class="ttname"><a href="structDecodeSignal.html#a822155d9bf4ed5f3300c9e9befe606ff">DecodeSignal::valueDescriptions</a></div><div class="ttdeci">ValueDescriptions valueDescriptions</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00057">decode_database.h:57</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a92db637af4e224a0ae70173050dc3f74"><div class="ttname"><a href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">DecodeSignal::offset</a></div><div class="ttdeci">double offset</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00052">decode_database.h:52</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a9d37638129263b8902ba5be59baf39a8"><div class="ttname"><a href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">DecodeSignal::valueType</a></div><div class="ttdeci">ValueType valueType</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00050">decode_database.h:50</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aaf5d7527ddf65b6355c2b4f3626df22d"><div class="ttname"><a href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">DecodeSignal::startBit</a></div><div class="ttdeci">std::uint32_t startBit</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00047">decode_database.h:47</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_abdbae62a64d2df716bf60c6b67b30eaa"><div class="ttname"><a href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">DecodeSignal::receivers</a></div><div class="ttdeci">std::vector&lt; std::string &gt; receivers</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00056">decode_database.h:56</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_abdc4c4bb4a67a6d61d6ca81e8a52833d"><div class="ttname"><a href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">DecodeSignal::byteOrder</a></div><div class="ttdeci">ByteOrder byteOrder</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00049">decode_database.h:49</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_acd4ef5ee30421d117b5756854302debb"><div class="ttname"><a href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">DecodeSignal::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00048">decode_database.h:48</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_ae28c905d4a2bc86419c2a8361bfea473"><div class="ttname"><a href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">DecodeSignal::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00058">decode_database.h:58</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aea41c055cb255fe7bd178ed5727f28c9"><div class="ttname"><a href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">DecodeSignal::multiplexing</a></div><div class="ttdeci">Multiplexing multiplexing</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00045">decode_database.h:45</a></div></div>
<div class="ttc" id="astructFrameInfo_html"><div class="ttname"><a href="structFrameInfo.html">FrameInfo</a></div><div class="ttdoc">Describes one CAN frame from a DBC file.</div><div class="ttdef"><b>Definition</b> <a href="frame__info_8h_source.html#l00025">frame_info.h:25</a></div></div>
<div class="ttc" id="astructSignalInfo_html"><div class="ttname"><a href="structSignalInfo.html">SignalInfo</a></div><div class="ttdoc">Describes one signal inside a DBC frame.</div><div class="ttdef"><b>Definition</b> <a href="signal__info_8h_source.html#l00025">signal_info.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+3 -2
View File
@@ -96,7 +96,7 @@ $(document).ready(function(){initNavTree('dbc__decode__builder_8h.html',''); ini
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<p>Runtime decode database builder.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="dbc__database_8h_source.html">dbc_database.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="decode__database_8h_source.html">decode_database.h</a>&quot;</code><br />
@@ -110,7 +110,8 @@ Classes</h2></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </p>
<div class="textblock"><p>Runtime decode database builder. </p>
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</p>
<p>Licensed under the MIT License. See LICENSE file in the project root for full license text. </p>
<p class="definition">Definition in file <a class="el" href="dbc__decode__builder_8h_source.html">dbc_decode_builder.h</a>.</p>
@@ -115,9 +115,9 @@ $(document).ready(function(){initNavTree('dbc__decode__builder_8h_source.html','
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#endif </span><span class="comment">/* DBC_DECODE_BUILDER_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aclassDbcDecodeBuilder_html"><div class="ttname"><a href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a></div><div class="ttdoc">Converts parsed DBC data into runtime decode database.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decode__builder_8h_source.html#l00021">dbc_decode_builder.h:21</a></div></div>
<div class="ttc" id="aclassDbcDecodeBuilder_html_a2bc6386dfb5e58976c42e22c19ec471b"><div class="ttname"><a href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">DbcDecodeBuilder::Build</a></div><div class="ttdeci">DecodeDatabase Build(const DbcDatabase &amp;source) const</div><div class="ttdoc">Build runtime decode database.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decode__builder_8cpp_source.html#l00015">dbc_decode_builder.cpp:15</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00087">decode_database.h:87</a></div></div>
<div class="ttc" id="adbc__database_8h_html"><div class="ttname"><a href="dbc__database_8h.html">dbc_database.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</div></div>
<div class="ttc" id="adecode__database_8h_html"><div class="ttname"><a href="decode__database_8h.html">decode_database.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00101">decode_database.h:101</a></div></div>
<div class="ttc" id="adbc__database_8h_html"><div class="ttname"><a href="dbc__database_8h.html">dbc_database.h</a></div><div class="ttdoc">Parsed DBC database and attribute metadata.</div></div>
<div class="ttc" id="adecode__database_8h_html"><div class="ttname"><a href="decode__database_8h.html">decode_database.h</a></div><div class="ttdoc">Runtime definitions and immutable indexed database.</div></div>
<div class="ttc" id="astructDbcDatabase_html"><div class="ttname"><a href="structDbcDatabase.html">DbcDatabase</a></div><div class="ttdoc">Parsed DBC content stored in a simple internal form.</div><div class="ttdef"><b>Definition</b> <a href="dbc__database_8h_source.html#l00022">dbc_database.h:22</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
+6 -2
View File
@@ -94,16 +94,20 @@ $(document).ready(function(){initNavTree('dbc__decoder_8cpp.html',''); initResiz
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<p>CAN signal extraction and physical value conversion.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>&quot;</code><br />
<code>#include &quot;j1939.h&quot;</code><br />
<code>#include &quot;signal_layout.h&quot;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &lt;stdexcept&gt;</code><br />
<code>#include &lt;unordered_set&gt;</code><br />
<code>#include &lt;utility&gt;</code><br />
</div>
<p><a href="dbc__decoder_8cpp_source.html">Go to the source code of this file.</a></p>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </p>
<div class="textblock"><p>CAN signal extraction and physical value conversion. </p>
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</p>
<p>Licensed under the MIT License. See LICENSE file in the project root for full license text. </p>
<p class="definition">Definition in file <a class="el" href="dbc__decoder_8cpp_source.html">dbc_decoder.cpp</a>.</p>
+285 -226
View File
@@ -100,249 +100,308 @@ $(document).ready(function(){initNavTree('dbc__decoder_8cpp_source.html',''); in
<div class="contents">
<a href="dbc__decoder_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span> </div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="preprocessor">#include &quot;<a class="code" href="dbc__decoder_8h.html">dbc_decoder.h</a>&quot;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;signal_layout.h&quot;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="foldopen" id="foldopen00017" data-start="{" data-end="}">
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"><a class="line" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c"> 17</a></span>std::shared_ptr&lt;const DecodeFrame&gt; <a class="code hl_function" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">DbcDecoder::FindFrame</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> std::uint32_t canId,</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keywordtype">bool</span> isExtended)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keywordflow">return</span> database.<a class="code hl_function" href="classDecodeDatabase.html#a780d6e747a48b10a5eb0ab85448d2970">FindFrame</a>(<a class="code hl_struct" href="structFrameKey.html">FrameKey</a>(canId, isExtended));</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span>}</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &quot;j1939.h&quot;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &quot;signal_layout.h&quot;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;cmath&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;stdexcept&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;unordered_set&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="foldopen" id="foldopen00020" data-start="{" data-end="}">
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"><a class="line" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c"> 20</a></span>std::shared_ptr&lt;const DecodeFrame&gt; <a class="code hl_function" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">DbcDecoder::FindFrame</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> std::uint32_t canId,</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordtype">bool</span> isExtended)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> <span class="keywordflow">return</span> ResolveFrame(database, canId, isExtended).<a class="code hl_variable" href="structPgnLookupResult.html#aa5b79b61d2aef48fd6ae070cf5f901c1">definition</a>;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span>}</div>
</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="foldopen" id="foldopen00023" data-start="{" data-end="}">
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"> 23</a></span><a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> <a class="code hl_function" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> result;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">key</a> = <a class="code hl_struct" href="structFrameKey.html">FrameKey</a>(frame.<a class="code hl_variable" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">canId</a>, frame.<a class="code hl_variable" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">isExtended</a>);</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keyword">const</span> std::shared_ptr&lt;const DecodeFrame&gt; definition = <a class="code hl_function" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">FindFrame</a>(database, frame.<a class="code hl_variable" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">canId</a>, frame.<a class="code hl_variable" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">isExtended</a>);</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">if</span> (definition == <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">definition</a> = definition;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">valid</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> = frame.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>.size() &lt; definition-&gt;dlc</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> ? FrameDecodeStatus::InsufficientPayload</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> : FrameDecodeStatus::Valid;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">const</span> SelectorState selector = ReadSelector(*definition, frame);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> result.signals.reserve(definition-&gt;signals.size());</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal: definition-&gt;signals) {</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> decoded = DecodeOneSignal(signal, definition-&gt;dlc, frame, selector);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">if</span> (!decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> &amp;&amp; decoded.status != SignalDecodeStatus::Inactive &amp;&amp;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> == FrameDecodeStatus::Valid)</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> = FrameDecodeStatus::SignalErrors;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">definition</a> = std::shared_ptr&lt;const DecodeSignal&gt;(definition, &amp;signal);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a">key</a> = <a class="code hl_struct" href="structSignalKey.html">SignalKey</a>(result.<a class="code hl_variable" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">key</a>, signal.name);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> result.signals.push_back(std::move(decoded));</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> }</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span>}</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><a class="code hl_struct" href="structPgnLookupResult.html">PgnLookupResult</a> DbcDecoder::ResolveFrame(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> std::uint32_t canId, <span class="keywordtype">bool</span> isExtended) {</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keyword">const</span> std::shared_ptr&lt;const DecodeFrame&gt; exact = database.<a class="code hl_function" href="classDecodeDatabase.html#a780d6e747a48b10a5eb0ab85448d2970">FindFrame</a>(<a class="code hl_struct" href="structFrameKey.html">FrameKey</a>(canId, isExtended));</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> <span class="keywordflow">if</span> (exact)</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">return</span> {exact, <span class="keyword">false</span>};</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">if</span> (!isExtended || canId &gt; 0x1FFFFFFFU)</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">return</span> {};</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">return</span> database.<a class="code hl_function" href="classDecodeDatabase.html#aa96b62b4f3fff68ab651674760f60d6d">FindFrameByPgn</a>(ExtractJ1939Pgn(canId));</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>}</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="foldopen" id="foldopen00036" data-start="{" data-end="}">
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"> 36</a></span><a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> <a class="code hl_function" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> <span class="keywordflow">return</span> DecodeImpl(database, frame, <span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>}</div>
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="keywordtype">bool</span> DbcDecoder::IsValidDefinition(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal, std::uint8_t dlc) {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keywordflow">if</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> == 0U || signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> &gt; 64U ||</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> != ByteOrder::Intel &amp;&amp; signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> != ByteOrder::Motorola) ||</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> != ValueType::Unsigned &amp;&amp; signal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> != ValueType::Signed) ||</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> (signal.multiplexing.role != MultiplexRole::Unconditional &amp;&amp;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> signal.multiplexing.role != MultiplexRole::Selector &amp;&amp;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> signal.multiplexing.role != MultiplexRole::Branch))</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="foldopen" id="foldopen00041" data-start="{" data-end="}">
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="classDbcDecoder.html#ade48a94b6fcda6563bd1b2c6ff49439e"> 41</a></span><a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> <a class="code hl_function" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame,</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">const</span> std::vector&lt;SignalKey&gt; &amp;selection)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">return</span> DecodeImpl(database, frame, &amp;selection);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span>}</div>
</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> DbcDecoder::DecodeImpl(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame,</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">const</span> std::vector&lt;SignalKey&gt; *selection)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> result;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">key</a> = <a class="code hl_struct" href="structFrameKey.html">FrameKey</a>(frame.<a class="code hl_variable" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">canId</a>, frame.<a class="code hl_variable" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">isExtended</a>);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keyword">const</span> <a class="code hl_struct" href="structPgnLookupResult.html">PgnLookupResult</a> match = ResolveFrame(database, frame.<a class="code hl_variable" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">canId</a>, frame.<a class="code hl_variable" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">isExtended</a>);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keywordflow">if</span> (match.<a class="code hl_variable" href="structPgnLookupResult.html#a6158833782348b3cc26037c2091fcc36">ambiguous</a>) {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> = FrameDecodeStatus::AmbiguousFrame;</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> }</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keyword">const</span> std::shared_ptr&lt;const DecodeFrame&gt; definition = match.<a class="code hl_variable" href="structPgnLookupResult.html#aa5b79b61d2aef48fd6ae070cf5f901c1">definition</a>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keywordflow">if</span> (definition == <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">key</a> = definition-&gt;GetKey();</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">return</span> IsValidSignalLayout(signal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a>, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>,</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> == ByteOrder::Intel, dlc);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span>}</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>DbcDecoder::SelectorState DbcDecoder::ReadSelector(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> &amp;definition,</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame) {</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> SelectorState selector;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> std::size_t count = 0U;</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal: definition.signals) {</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">if</span> (signal.multiplexing.role == MultiplexRole::Selector) {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> selector.definition = &amp;signal;</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> ++count;</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> }</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> }</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">if</span> (count != 1U)</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <span class="keywordflow">return</span> selector;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal = *selector.definition;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> selector.valid = signal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> == ValueType::Unsigned &amp;&amp;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> IsValidDefinition(signal, definition.<a class="code hl_variable" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">dlc</a>);</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> selector.available = selector.valid &amp;&amp; ExtractUnsigned(frame.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>, signal, selector.value);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">return</span> selector;</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span>}</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> </div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> DbcDecoder::DecodeOneSignal(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> std::uint8_t dlc,</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame,</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">const</span> SelectorState &amp;selector) {</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> decoded;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> std::uint64_t unsignedValue = 0U;</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <span class="keywordflow">if</span> (!IsValidDefinition(signal, dlc) ||</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> (signal.multiplexing.role != MultiplexRole::Unconditional &amp;&amp; !selector.valid)) {</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> std::vector&lt;const DecodeSignal *&gt; selected;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">if</span> (selection != <span class="keyword">nullptr</span>) {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> selected.reserve(selection-&gt;size());</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> std::unordered_set&lt;SignalKey, SignalKeyHasher&gt; keys;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="structSignalKey.html">SignalKey</a> &amp;key: *selection) {</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">if</span> (!(key.frame == result.<a class="code hl_variable" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">key</a>))</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;Selected signal belongs to another frame: &quot;</span> + key.name);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="keywordflow">if</span> (!keys.insert(key).second)</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;Duplicate selected signal: &quot;</span> + key.name);</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">const</span> std::shared_ptr&lt;const DecodeSignal&gt; signal = database.<a class="code hl_function" href="classDecodeDatabase.html#a0af5b15b9953a4f6551c27ee9ae8b514">FindSignal</a>(key);</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">if</span> (!signal)</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> <span class="keywordflow">throw</span> std::invalid_argument(<span class="stringliteral">&quot;Unknown selected signal: &quot;</span> + key.name);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> selected.push_back(signal.get());</div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> }</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> }</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">definition</a> = definition;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">valid</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> = frame.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>.size() &lt; definition-&gt;dlc</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> ? FrameDecodeStatus::InsufficientPayload</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> : FrameDecodeStatus::Valid;</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> </div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">const</span> SelectorState selector = ReadSelector(*definition, frame);</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> <span class="keyword">const</span> std::size_t count = selection != <span class="keyword">nullptr</span> ? selected.size() : definition-&gt;signals.size();</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> result.signals.reserve(count);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">for</span> (std::size_t index = 0U; index &lt; count; ++index) {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal = selection != <span class="keyword">nullptr</span> ? *selected[index] : definition-&gt;signals[index];</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> decoded = DecodeOneSignal(signal, definition-&gt;dlc, frame, selector);</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordflow">if</span> (!decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> &amp;&amp; decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a> != SignalDecodeStatus::Inactive &amp;&amp;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> == FrameDecodeStatus::Valid)</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> = FrameDecodeStatus::SignalErrors;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">definition</a> = std::shared_ptr&lt;const DecodeSignal&gt;(definition, &amp;signal);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a">key</a> = <a class="code hl_struct" href="structSignalKey.html">SignalKey</a>(result.<a class="code hl_variable" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">key</a>, signal.<a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a>);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> result.signals.push_back(std::move(decoded));</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> }</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">if</span> (signal.multiplexing.role == MultiplexRole::Branch) {</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">if</span> (selector.definition-&gt;length &lt; 64U &amp;&amp; signal.multiplexing.value &gt;= (std::uint64_t(1U) &lt;&lt; selector.definition-&gt;length)) {</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> }</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordflow">if</span> (!selector.available) {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> decoded.status = SignalDecodeStatus::SelectorUnavailable;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> }</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">if</span> (signal.multiplexing.value != selector.value) {</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> decoded.status = SignalDecodeStatus::Inactive;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> }</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> }</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">if</span> (!ExtractUnsigned(frame.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>, signal, unsignedValue)) {</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> decoded.status = SignalDecodeStatus::InsufficientPayload;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> }</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> <span class="keywordflow">if</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> == ValueType::Signed)</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a> = SignExtend(unsignedValue, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a> = unsignedValue;</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> </div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keywordtype">double</span> numericValue;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> std::int64_t *signedValue = std::get_if&lt;std::int64_t&gt;(&amp;decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a>))</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> numericValue = <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(*signedValue);</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> numericValue = <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(std::get&lt;std::uint64_t&gt;(decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a>));</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a> = numericValue * signal.<a class="code hl_variable" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">factor</a> + signal.<a class="code hl_variable" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">offset</a>;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordflow">if</span> (!std::isfinite(decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a>)) {</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> decoded.status = SignalDecodeStatus::PhysicalConversionFailed;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> }</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> decoded.status = SignalDecodeStatus::Valid;</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span>}</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="keywordtype">bool</span> DbcDecoder::IsValidDefinition(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal, std::uint8_t dlc) {</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">if</span> ((signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> != ByteOrder::Intel &amp;&amp; signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> != ByteOrder::Motorola) ||</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> != ValueType::Unsigned &amp;&amp; signal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> != ValueType::Signed) ||</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> != MultiplexRole::Unconditional &amp;&amp;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> signal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> != MultiplexRole::Selector &amp;&amp;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> signal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> != MultiplexRole::Branch))</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> IsValidSignalLayout(signal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a>, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>,</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> == ByteOrder::Intel, dlc);</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span>}</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span>DbcDecoder::SelectorState DbcDecoder::ReadSelector(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> &amp;definition,</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame) {</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> SelectorState selector;</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> std::size_t count = 0U;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keywordflow">for</span> (<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal: definition.signals) {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">if</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> == MultiplexRole::Selector) {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> selector.definition = &amp;signal;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> ++count;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> }</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> }</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">if</span> (count != 1U)</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">return</span> selector;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal = *selector.definition;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> selector.valid = signal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> == ValueType::Unsigned &amp;&amp;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> IsValidDefinition(signal, definition.<a class="code hl_variable" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">dlc</a>);</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> selector.available = selector.valid &amp;&amp; ExtractUnsigned(frame.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>, signal, selector.value);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">return</span> selector;</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span>}</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span>}</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="keywordtype">bool</span> DbcDecoder::ExtractUnsigned(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">if</span> ((signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> == 0U) || (signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> &gt; 64U))</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">if</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> == ByteOrder::Intel)</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="keywordflow">return</span> ExtractIntel(data, signal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a>, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>, value);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> </div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">return</span> ExtractMotorola(data, signal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a>, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>, value);</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span>}</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="keywordtype">bool</span> DbcDecoder::ExtractIntel(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> std::uint32_t length,</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> value = 0U;</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">for</span> (std::uint32_t bitIndex = 0U; bitIndex &lt; length; ++bitIndex) {</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">const</span> std::uint64_t absoluteBit = std::uint64_t(startBit) + bitIndex;</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keyword">const</span> std::uint64_t byteIndex = absoluteBit / 8U;</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keyword">const</span> std::uint32_t bitInByte = absoluteBit % 8U;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">if</span> (byteIndex &gt;= data.size())</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> DbcDecoder::DecodeOneSignal(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> std::uint8_t dlc,</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame,</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> <span class="keyword">const</span> SelectorState &amp;selector) {</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> decoded;</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> std::uint64_t unsignedValue = 0U;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> <span class="keywordflow">if</span> (!IsValidDefinition(signal, dlc) ||</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> != MultiplexRole::Unconditional &amp;&amp; !selector.valid)) {</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> }</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">if</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> == MultiplexRole::Branch) {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">if</span> (selector.definition-&gt;length &lt; 64U &amp;&amp; signal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a79158d4fdbfd68a3d51a8ce79d34fd67">value</a> &gt;= (std::uint64_t(1U) &lt;&lt; selector.definition-&gt;length)) {</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> }</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keywordflow">if</span> (!selector.available) {</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a> = SignalDecodeStatus::SelectorUnavailable;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> }</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> <span class="keywordflow">if</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a79158d4fdbfd68a3d51a8ce79d34fd67">value</a> != selector.value) {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a> = SignalDecodeStatus::Inactive;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> }</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> }</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">if</span> (!ExtractUnsigned(frame.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>, signal, unsignedValue)) {</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a> = SignalDecodeStatus::InsufficientPayload;</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> }</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keyword">const</span> std::uint64_t bitValue =</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> (<span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span>((data[byteIndex] &gt;&gt; bitInByte) &amp; 0x01U) &lt;&lt; bitIndex);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> value |= bitValue;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> }</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span>}</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> </div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="keywordtype">bool</span> DbcDecoder::ExtractMotorola(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> std::uint32_t length,</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="comment"> * DBC Motorola bit numbering:</span></div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment"> * - startBit points to the most significant bit of the signal</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="comment"> * - inside a byte, bit numbering goes 7..0</span></div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment"> * - crossing byte boundary moves to the next byte, bit 7</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment"> * Example: a signal starting at 7 follows 7..0, 15..8, 23..16.</span></div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment"> */</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> == ValueType::Signed)</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a> = SignExtend(unsignedValue, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>);</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a> = unsignedValue;</div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> <span class="keywordtype">double</span> numericValue;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">if</span> (<span class="keyword">const</span> std::int64_t *signedValue = std::get_if&lt;std::int64_t&gt;(&amp;decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a>))</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> numericValue = <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(*signedValue);</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> numericValue = <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(std::get&lt;std::uint64_t&gt;(decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a>));</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a> = numericValue * signal.<a class="code hl_variable" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">factor</a> + signal.<a class="code hl_variable" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">offset</a>;</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> <span class="keywordflow">if</span> (!std::isfinite(decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a>)) {</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a> = SignalDecodeStatus::PhysicalConversionFailed;</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> }</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a> = SignalDecodeStatus::Valid;</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">return</span> decoded;</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span>}</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> </div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> value = 0U;</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> </div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> std::size_t byteIndex = startBit / 8U;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> std::uint32_t bitInByte = startBit % 8U;</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> <span class="keywordflow">for</span> (std::uint32_t bitIndex = 0U; bitIndex &lt; length; ++bitIndex) {</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">if</span> (byteIndex &gt;= data.size())</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="keywordtype">bool</span> DbcDecoder::ExtractUnsigned(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> <span class="keywordflow">if</span> ((signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> == 0U) || (signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> &gt; 64U))</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">if</span> (signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> == ByteOrder::Intel)</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">return</span> ExtractIntel(data, signal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a>, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>, value);</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> value &lt;&lt;= 1U;</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> value |= <span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span>((data[byteIndex] &gt;&gt; bitInByte) &amp; 0x01U);</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> <span class="keywordflow">return</span> ExtractMotorola(data, signal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a>, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>, value);</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span>}</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> </div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> <span class="keywordflow">if</span> (bitInByte == 0U) {</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> ++byteIndex;</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> bitInByte = 7U;</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> --bitInByte;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> }</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span>}</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> </div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span>std::int64_t DbcDecoder::SignExtend(std::uint64_t value, std::uint32_t bitLength) {</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">if</span> ((bitLength == 0U) || (bitLength &gt; 64U))</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="keywordtype">bool</span> DbcDecoder::ExtractIntel(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> std::uint32_t length,</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> value = 0U;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> </div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">for</span> (std::uint32_t bitIndex = 0U; bitIndex &lt; length; ++bitIndex) {</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keyword">const</span> std::uint64_t absoluteBit = std::uint64_t(startBit) + bitIndex;</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">const</span> std::uint64_t byteIndex = absoluteBit / 8U;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">const</span> std::uint32_t bitInByte = absoluteBit % 8U;</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> </div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">if</span> (byteIndex &gt;= data.size())</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> </div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">const</span> std::uint64_t signMask = std::uint64_t(1U) &lt;&lt; (bitLength - 1U);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">const</span> std::uint64_t valueMask = (bitLength == 64U)</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> ? ~std::uint64_t(0U)</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> : (std::uint64_t(1U) &lt;&lt; bitLength) - 1U;</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> value &amp;= valueMask;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">const</span> std::uint64_t bitValue =</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> (<span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span>((data[byteIndex] &gt;&gt; bitInByte) &amp; 0x01U) &lt;&lt; bitIndex);</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> </div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> value |= bitValue;</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> }</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> </div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">if</span> ((value &amp; signMask) == 0U)</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>std::int64_t<span class="keyword">&gt;</span>(value);</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span>}</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> </div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> <span class="comment">// The complemented magnitude fits int64_t, including for INT64_MIN.</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">return</span> -1 - <span class="keyword">static_cast&lt;</span>std::int64_t<span class="keyword">&gt;</span>((~value) &amp; valueMask);</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span>}</div>
<div class="ttc" id="aclassDbcDecoder_html_a345951ffe5d943a70d3a1ea1f39e74f7"><div class="ttname"><a href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a></div><div class="ttdeci">DecodedFrameValue Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const</div><div class="ttdoc">Decode one raw CAN frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00023">dbc_decoder.cpp:23</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_a4005c4311f57b7faf21c0cb31463039c"><div class="ttname"><a href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">DbcDecoder::FindFrame</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; FindFrame(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const</div><div class="ttdoc">Find frame definition by CAN ID.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00017">dbc_decoder.cpp:17</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00087">decode_database.h:87</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html_a780d6e747a48b10a5eb0ab85448d2970"><div class="ttname"><a href="classDecodeDatabase.html#a780d6e747a48b10a5eb0ab85448d2970">DecodeDatabase::FindFrame</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; FindFrame(const FrameKey &amp;key) const</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8cpp_source.html#l00110">decode_database.cpp:110</a></div></div>
<div class="ttc" id="adbc__decoder_8h_html"><div class="ttname"><a href="dbc__decoder_8h.html">dbc_decoder.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</div></div>
<div class="ttc" id="astructDecodeFrame_html"><div class="ttname"><a href="structDecodeFrame.html">DecodeFrame</a></div><div class="ttdoc">Runtime-ready frame definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00065">decode_database.h:65</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a51111ac13988be372d5673d12cf3e060"><div class="ttname"><a href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">DecodeFrame::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00069">decode_database.h:69</a></div></div>
<div class="ttc" id="astructDecodeSignal_html"><div class="ttname"><a href="structDecodeSignal.html">DecodeSignal</a></div><div class="ttdoc">Runtime-ready signal definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00043">decode_database.h:43</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a428c39913a366a8476dd291061354391"><div class="ttname"><a href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">DecodeSignal::factor</a></div><div class="ttdeci">double factor</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00050">decode_database.h:50</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a92db637af4e224a0ae70173050dc3f74"><div class="ttname"><a href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">DecodeSignal::offset</a></div><div class="ttdeci">double offset</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00051">decode_database.h:51</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a9d37638129263b8902ba5be59baf39a8"><div class="ttname"><a href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">DecodeSignal::valueType</a></div><div class="ttdeci">ValueType valueType</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00049">decode_database.h:49</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aaf5d7527ddf65b6355c2b4f3626df22d"><div class="ttname"><a href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">DecodeSignal::startBit</a></div><div class="ttdeci">std::uint32_t startBit</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00046">decode_database.h:46</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_abdc4c4bb4a67a6d61d6ca81e8a52833d"><div class="ttname"><a href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">DecodeSignal::byteOrder</a></div><div class="ttdeci">ByteOrder byteOrder</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00048">decode_database.h:48</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_acd4ef5ee30421d117b5756854302debb"><div class="ttname"><a href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">DecodeSignal::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00047">decode_database.h:47</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html"><div class="ttname"><a href="structDecodedFrameValue.html">DecodedFrameValue</a></div><div class="ttdoc">Fully decoded frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00071">dbc_decoder.h:71</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a32143efe2023a1ecd977a9ae93e50b73"><div class="ttname"><a href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">DecodedFrameValue::key</a></div><div class="ttdeci">FrameKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00073">dbc_decoder.h:73</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a33e971ba10030506007aa201c89f351d"><div class="ttname"><a href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">DecodedFrameValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00072">dbc_decoder.h:72</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a4f51c31110dba1f73a763c596372beb0"><div class="ttname"><a href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">DecodedFrameValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00075">dbc_decoder.h:75</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a645f433798d48a2787e7f00dfbb7dff9"><div class="ttname"><a href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">DecodedFrameValue::status</a></div><div class="ttdeci">FrameDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00076">dbc_decoder.h:76</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html"><div class="ttname"><a href="structDecodedSignalValue.html">DecodedSignalValue</a></div><div class="ttdoc">One decoded signal value.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00052">dbc_decoder.h:52</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a33df0fcd92b23b3e08539906fc6b4c4a"><div class="ttname"><a href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a">DecodedSignalValue::key</a></div><div class="ttdeci">SignalKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00054">dbc_decoder.h:54</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a503c90b4b1a610b8252c45e466367c28"><div class="ttname"><a href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">DecodedSignalValue::rawValue</a></div><div class="ttdeci">RawSignalValue rawValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00055">dbc_decoder.h:55</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a6847d05b3cb00d5e0f6c611968f57978"><div class="ttname"><a href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">DecodedSignalValue::physicalValue</a></div><div class="ttdeci">double physicalValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00056">dbc_decoder.h:56</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a828b5ef7faefc14fbf5dbd46249bcad2"><div class="ttname"><a href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">DecodedSignalValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeSignal &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00053">dbc_decoder.h:53</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_aac0ed361af545cde48d0e6f41a859686"><div class="ttname"><a href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">DecodedSignalValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00057">dbc_decoder.h:57</a></div></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="keywordtype">bool</span> DbcDecoder::ExtractMotorola(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> std::uint32_t length,</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment"> * DBC Motorola bit numbering:</span></div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment"> * - startBit points to the most significant bit of the signal</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span><span class="comment"> * - inside a byte, bit numbering goes 7..0</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="comment"> * - crossing byte boundary moves to the next byte, bit 7</span></div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="comment"> * Example: a signal starting at 7 follows 7..0, 15..8, 23..16.</span></div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="comment"> */</span></div>
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span> </div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> value = 0U;</div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> </div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> std::size_t byteIndex = startBit / 8U;</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> std::uint32_t bitInByte = startBit % 8U;</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> <span class="keywordflow">for</span> (std::uint32_t bitIndex = 0U; bitIndex &lt; length; ++bitIndex) {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">if</span> (byteIndex &gt;= data.size())</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> </div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> value &lt;&lt;= 1U;</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> value |= <span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span>((data[byteIndex] &gt;&gt; bitInByte) &amp; 0x01U);</div>
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> <span class="keywordflow">if</span> (bitInByte == 0U) {</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> ++byteIndex;</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> bitInByte = 7U;</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> } <span class="keywordflow">else</span></div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> --bitInByte;</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> }</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> </div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span>}</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span>std::int64_t DbcDecoder::SignExtend(std::uint64_t value, std::uint32_t bitLength) {</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> <span class="keywordflow">if</span> ((bitLength == 0U) || (bitLength &gt; 64U))</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">return</span> 0;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> </div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keyword">const</span> std::uint64_t signMask = std::uint64_t(1U) &lt;&lt; (bitLength - 1U);</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keyword">const</span> std::uint64_t valueMask = (bitLength == 64U)</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> ? ~std::uint64_t(0U)</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> : (std::uint64_t(1U) &lt;&lt; bitLength) - 1U;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> value &amp;= valueMask;</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> </div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> <span class="keywordflow">if</span> ((value &amp; signMask) == 0U)</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span>std::int64_t<span class="keyword">&gt;</span>(value);</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> <span class="comment">// The complemented magnitude fits int64_t, including for INT64_MIN.</span></div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> <span class="keywordflow">return</span> -1 - <span class="keyword">static_cast&lt;</span>std::int64_t<span class="keyword">&gt;</span>((~value) &amp; valueMask);</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span>}</div>
<div class="ttc" id="aclassDbcDecoder_html_a345951ffe5d943a70d3a1ea1f39e74f7"><div class="ttname"><a href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a></div><div class="ttdeci">DecodedFrameValue Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const</div><div class="ttdoc">Decode one raw CAN frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00036">dbc_decoder.cpp:36</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_a4005c4311f57b7faf21c0cb31463039c"><div class="ttname"><a href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">DbcDecoder::FindFrame</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; FindFrame(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const</div><div class="ttdoc">Find exact CAN ID first, then unique PGN among explicitly J1939 definitions.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00020">dbc_decoder.cpp:20</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00101">decode_database.h:101</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html_a0af5b15b9953a4f6551c27ee9ae8b514"><div class="ttname"><a href="classDecodeDatabase.html#a0af5b15b9953a4f6551c27ee9ae8b514">DecodeDatabase::FindSignal</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeSignal &gt; FindSignal(const SignalKey &amp;key) const</div><div class="ttdoc">Return an owning signal handle, or an empty handle for a missing key.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8cpp_source.html#l00146">decode_database.cpp:146</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html_a780d6e747a48b10a5eb0ab85448d2970"><div class="ttname"><a href="classDecodeDatabase.html#a780d6e747a48b10a5eb0ab85448d2970">DecodeDatabase::FindFrame</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; FindFrame(const FrameKey &amp;key) const</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8cpp_source.html#l00120">decode_database.cpp:120</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html_aa96b62b4f3fff68ab651674760f60d6d"><div class="ttname"><a href="classDecodeDatabase.html#aa96b62b4f3fff68ab651674760f60d6d">DecodeDatabase::FindFrameByPgn</a></div><div class="ttdeci">PgnLookupResult FindFrameByPgn(std::uint32_t pgn) const</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8cpp_source.html#l00130">decode_database.cpp:130</a></div></div>
<div class="ttc" id="adbc__decoder_8h_html"><div class="ttname"><a href="dbc__decoder_8h.html">dbc_decoder.h</a></div><div class="ttdoc">CAN frame decoding API and result types.</div></div>
<div class="ttc" id="astructDecodeFrame_html"><div class="ttname"><a href="structDecodeFrame.html">DecodeFrame</a></div><div class="ttdoc">Runtime-ready frame definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00068">decode_database.h:68</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a51111ac13988be372d5673d12cf3e060"><div class="ttname"><a href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">DecodeFrame::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00072">decode_database.h:72</a></div></div>
<div class="ttc" id="astructDecodeSignal_html"><div class="ttname"><a href="structDecodeSignal.html">DecodeSignal</a></div><div class="ttdoc">Runtime-ready signal definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00044">decode_database.h:44</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a428c39913a366a8476dd291061354391"><div class="ttname"><a href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">DecodeSignal::factor</a></div><div class="ttdeci">double factor</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00051">decode_database.h:51</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a58cf5844f2272a23dcb9687d912e4780"><div class="ttname"><a href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">DecodeSignal::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00046">decode_database.h:46</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a92db637af4e224a0ae70173050dc3f74"><div class="ttname"><a href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">DecodeSignal::offset</a></div><div class="ttdeci">double offset</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00052">decode_database.h:52</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a9d37638129263b8902ba5be59baf39a8"><div class="ttname"><a href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">DecodeSignal::valueType</a></div><div class="ttdeci">ValueType valueType</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00050">decode_database.h:50</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aaf5d7527ddf65b6355c2b4f3626df22d"><div class="ttname"><a href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">DecodeSignal::startBit</a></div><div class="ttdeci">std::uint32_t startBit</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00047">decode_database.h:47</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_abdc4c4bb4a67a6d61d6ca81e8a52833d"><div class="ttname"><a href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">DecodeSignal::byteOrder</a></div><div class="ttdeci">ByteOrder byteOrder</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00049">decode_database.h:49</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_acd4ef5ee30421d117b5756854302debb"><div class="ttname"><a href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">DecodeSignal::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00048">decode_database.h:48</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aea41c055cb255fe7bd178ed5727f28c9"><div class="ttname"><a href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">DecodeSignal::multiplexing</a></div><div class="ttdeci">Multiplexing multiplexing</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00045">decode_database.h:45</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html"><div class="ttname"><a href="structDecodedFrameValue.html">DecodedFrameValue</a></div><div class="ttdoc">Fully decoded frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00073">dbc_decoder.h:73</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a32143efe2023a1ecd977a9ae93e50b73"><div class="ttname"><a href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">DecodedFrameValue::key</a></div><div class="ttdeci">FrameKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00075">dbc_decoder.h:75</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a33e971ba10030506007aa201c89f351d"><div class="ttname"><a href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">DecodedFrameValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00074">dbc_decoder.h:74</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a4f51c31110dba1f73a763c596372beb0"><div class="ttname"><a href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">DecodedFrameValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00077">dbc_decoder.h:77</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a645f433798d48a2787e7f00dfbb7dff9"><div class="ttname"><a href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">DecodedFrameValue::status</a></div><div class="ttdeci">FrameDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00078">dbc_decoder.h:78</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html"><div class="ttname"><a href="structDecodedSignalValue.html">DecodedSignalValue</a></div><div class="ttdoc">One decoded signal value.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00054">dbc_decoder.h:54</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a33df0fcd92b23b3e08539906fc6b4c4a"><div class="ttname"><a href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a">DecodedSignalValue::key</a></div><div class="ttdeci">SignalKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00056">dbc_decoder.h:56</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a503c90b4b1a610b8252c45e466367c28"><div class="ttname"><a href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">DecodedSignalValue::rawValue</a></div><div class="ttdeci">RawSignalValue rawValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00057">dbc_decoder.h:57</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a6847d05b3cb00d5e0f6c611968f57978"><div class="ttname"><a href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">DecodedSignalValue::physicalValue</a></div><div class="ttdeci">double physicalValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00058">dbc_decoder.h:58</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a828b5ef7faefc14fbf5dbd46249bcad2"><div class="ttname"><a href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">DecodedSignalValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeSignal &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00055">dbc_decoder.h:55</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a94161a80412b3961da8fd2fec43c25f6"><div class="ttname"><a href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">DecodedSignalValue::status</a></div><div class="ttdeci">SignalDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00060">dbc_decoder.h:60</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_aac0ed361af545cde48d0e6f41a859686"><div class="ttname"><a href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">DecodedSignalValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00059">dbc_decoder.h:59</a></div></div>
<div class="ttc" id="astructFrameKey_html"><div class="ttname"><a href="structFrameKey.html">FrameKey</a></div><div class="ttdoc">Stable frame identifier: normalized CAN ID and frame type.</div><div class="ttdef"><b>Definition</b> <a href="definition__key_8h_source.html#l00015">definition_key.h:15</a></div></div>
<div class="ttc" id="astructMultiplexing_html_a62b70a0e3f2a9c7a457b3694ce8625c3"><div class="ttname"><a href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">Multiplexing::role</a></div><div class="ttdeci">MultiplexRole role</div><div class="ttdef"><b>Definition</b> <a href="multiplexing_8h_source.html#l00016">multiplexing.h:16</a></div></div>
<div class="ttc" id="astructMultiplexing_html_a79158d4fdbfd68a3d51a8ce79d34fd67"><div class="ttname"><a href="structMultiplexing.html#a79158d4fdbfd68a3d51a8ce79d34fd67">Multiplexing::value</a></div><div class="ttdeci">std::uint64_t value</div><div class="ttdef"><b>Definition</b> <a href="multiplexing_8h_source.html#l00017">multiplexing.h:17</a></div></div>
<div class="ttc" id="astructPgnLookupResult_html"><div class="ttname"><a href="structPgnLookupResult.html">PgnLookupResult</a></div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00092">decode_database.h:92</a></div></div>
<div class="ttc" id="astructPgnLookupResult_html_a6158833782348b3cc26037c2091fcc36"><div class="ttname"><a href="structPgnLookupResult.html#a6158833782348b3cc26037c2091fcc36">PgnLookupResult::ambiguous</a></div><div class="ttdeci">bool ambiguous</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00094">decode_database.h:94</a></div></div>
<div class="ttc" id="astructPgnLookupResult_html_aa5b79b61d2aef48fd6ae070cf5f901c1"><div class="ttname"><a href="structPgnLookupResult.html#aa5b79b61d2aef48fd6ae070cf5f901c1">PgnLookupResult::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00093">decode_database.h:93</a></div></div>
<div class="ttc" id="astructRawCanFrame_html"><div class="ttname"><a href="structRawCanFrame.html">RawCanFrame</a></div><div class="ttdoc">Raw CAN frame used for runtime or trace decoding.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00024">dbc_decoder.h:24</a></div></div>
<div class="ttc" id="astructRawCanFrame_html_a0acb487612104c99c9907344c035df83"><div class="ttname"><a href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">RawCanFrame::data</a></div><div class="ttdeci">std::vector&lt; std::uint8_t &gt; data</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00027">dbc_decoder.h:27</a></div></div>
<div class="ttc" id="astructRawCanFrame_html_a2d0e7fa0e3d5c20bbed55ed8f7888ff4"><div class="ttname"><a href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">RawCanFrame::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00025">dbc_decoder.h:25</a></div></div>
<div class="ttc" id="astructRawCanFrame_html_a462193d275adc1dba8bd18ffa0e36bb7"><div class="ttname"><a href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">RawCanFrame::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00026">dbc_decoder.h:26</a></div></div>
<div class="ttc" id="astructSignalKey_html"><div class="ttname"><a href="structSignalKey.html">SignalKey</a></div><div class="ttdef"><b>Definition</b> <a href="definition__key_8h_source.html#l00042">definition_key.h:42</a></div></div>
<div class="ttc" id="astructSignalKey_html"><div class="ttname"><a href="structSignalKey.html">SignalKey</a></div><div class="ttdef"><b>Definition</b> <a href="definition__key_8h_source.html#l00045">definition_key.h:45</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+15 -7
View File
@@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('dbc__decoder_8h.html',''); initResizab
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<p>CAN frame decoding API and result types.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cstdint&gt;</code><br />
<code>#include &lt;variant&gt;</code><br />
@@ -123,7 +123,7 @@ Classes</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:a5f4a41ee2810487020135b45e8d7559a" id="r_a5f4a41ee2810487020135b45e8d7559a"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><b>SignalDecodeStatus</b> { <br />
<tr class="memitem:a5f4a41ee2810487020135b45e8d7559a" id="r_a5f4a41ee2810487020135b45e8d7559a"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">SignalDecodeStatus</a> { <br />
&#160;&#160;<b>InvalidDefinition</b>
, <b>InsufficientPayload</b>
, <b>SelectorUnavailable</b>
@@ -133,16 +133,22 @@ Enumerations</h2></td></tr>
, <b>PhysicalConversionFailed</b>
<br />
}</td></tr>
<tr class="memdesc:a5f4a41ee2810487020135b45e8d7559a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Outcome of signal extraction and physical conversion. <a href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">More...</a><br /></td></tr>
<tr class="separator:a5f4a41ee2810487020135b45e8d7559a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a855b2bc36cb18bfbae5ff30a2394e961" id="r_a855b2bc36cb18bfbae5ff30a2394e961"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a> { <b>UnknownFrame</b>
<tr class="memitem:a855b2bc36cb18bfbae5ff30a2394e961" id="r_a855b2bc36cb18bfbae5ff30a2394e961"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a> { <br />
&#160;&#160;<b>UnknownFrame</b>
, <b>InsufficientPayload</b>
, <b>SignalErrors</b>
, <b>Valid</b>
, <br />
&#160;&#160;<b>AmbiguousFrame</b>
<br />
}</td></tr>
<tr class="separator:a855b2bc36cb18bfbae5ff30a2394e961"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </p>
<div class="textblock"><p>CAN frame decoding API and result types. </p>
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</p>
<p>Licensed under the MIT License. See LICENSE file in the project root for full license text. </p>
<p class="definition">Definition in file <a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>.</p>
@@ -157,7 +163,7 @@ Enumerations</h2></td></tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum class SignalDecodeStatus</td>
<td class="memname">enum class <a class="el" href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">SignalDecodeStatus</a></td>
</tr>
</table>
</td>
@@ -167,7 +173,9 @@ Enumerations</h2></td></tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8h_source.html#l00032">32</a> of file <a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>.</p>
<p>Outcome of signal extraction and physical conversion. </p>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8h_source.html#l00033">33</a> of file <a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>.</p>
</div>
</div>
@@ -192,7 +200,7 @@ Enumerations</h2></td></tr>
</div><div class="memdoc">
<p>Frame summary: short payload takes precedence over individual signal errors. </p>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8h_source.html#l00042">42</a> of file <a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8h_source.html#l00043">43</a> of file <a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>.</p>
</div>
</div>
+10 -1
View File
@@ -4,10 +4,19 @@ var dbc__decoder_8h =
[ "DecodedSignalValue", "structDecodedSignalValue.html", "structDecodedSignalValue" ],
[ "DecodedFrameValue", "structDecodedFrameValue.html", "structDecodedFrameValue" ],
[ "DbcDecoder", "classDbcDecoder.html", "classDbcDecoder" ],
[ "SignalDecodeStatus", "dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a", [
[ "InvalidDefinition", "dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559aaa20a6f8fa79aa562f9d3392c0060df54", null ],
[ "InsufficientPayload", "dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559aa7c9fa088a1e7db1fc83cb62aefd3ea7f", null ],
[ "SelectorUnavailable", "dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559aa6e43305edb6a91f66811f9af70346d81", null ],
[ "Inactive", "dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559aa3cab03c00dbd11bc3569afa0748013f0", null ],
[ "Valid", "dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559aa3ac705f2acd51a4613f9188c05c91d0d", null ],
[ "PhysicalConversionFailed", "dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559aae7d6c26841c7125dc32c49f3bbc8a436", null ]
] ],
[ "FrameDecodeStatus", "dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961", [
[ "UnknownFrame", "dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961a85f5d387f9a01dce258470e1a5a23332", null ],
[ "InsufficientPayload", "dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961a7c9fa088a1e7db1fc83cb62aefd3ea7f", null ],
[ "SignalErrors", "dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961aedeb8da96660592dfe0853f212b77469", null ],
[ "Valid", "dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961a3ac705f2acd51a4613f9188c05c91d0d", null ]
[ "Valid", "dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961a3ac705f2acd51a4613f9188c05c91d0d", null ],
[ "AmbiguousFrame", "dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961a88db09d74e14ac6c0a3bc7cd91b45358", null ]
] ]
];
+125 -109
View File
@@ -117,125 +117,141 @@ $(document).ready(function(){initNavTree('dbc__decoder_8h_source.html',''); init
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>};</div>
</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">enum class</span> SignalDecodeStatus {</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> InvalidDefinition,</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> InsufficientPayload,</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> SelectorUnavailable,</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> Inactive,</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> Valid,</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> PhysicalConversionFailed</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>};</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div>
<div class="foldopen" id="foldopen00042" data-start="{" data-end="};">
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961"> 42</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a> {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> UnknownFrame,</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> InsufficientPayload,</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> SignalErrors,</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> Valid</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span>};</div>
<div class="foldopen" id="foldopen00033" data-start="{" data-end="};">
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a"> 33</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">SignalDecodeStatus</a> {</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> InvalidDefinition,</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> InsufficientPayload,</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> SelectorUnavailable,</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> Inactive,</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> Valid,</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> PhysicalConversionFailed</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>};</div>
</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="foldopen" id="foldopen00052" data-start="{" data-end="};">
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html"> 52</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2"> 53</a></span> std::shared_ptr&lt;const DecodeSignal&gt; <a class="code hl_variable" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">definition</a>; </div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a"> 54</a></span> <a class="code hl_struct" href="structSignalKey.html">SignalKey</a> <a class="code hl_variable" href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a">key</a>; </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28"> 55</a></span> RawSignalValue <a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a> = std::uint64_t(0U); </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"> 56</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a> = 0.0; </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"> 57</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> = <span class="keyword">false</span>; </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> SignalDecodeStatus status = SignalDecodeStatus::InvalidDefinition;</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="foldopen" id="foldopen00061" data-start="{" data-end="}">
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2"> 61</a></span> <span class="keyword">const</span> std::string *<a class="code hl_function" href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2">GetValueDescription</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> &amp;&amp; <a class="code hl_variable" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">definition</a> ? FindValueDescription(<a class="code hl_variable" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">definition</a>-&gt;valueDescriptions, <a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a>) : <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> }</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="foldopen" id="foldopen00043" data-start="{" data-end="};">
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961"> 43</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a> {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> UnknownFrame,</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> InsufficientPayload,</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> SignalErrors,</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> Valid,</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> AmbiguousFrame</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span>};</div>
</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>};</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> </div>
<div class="foldopen" id="foldopen00054" data-start="{" data-end="};">
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html"> 54</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2"> 55</a></span> std::shared_ptr&lt;const DecodeSignal&gt; <a class="code hl_variable" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">definition</a>; </div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a"> 56</a></span> <a class="code hl_struct" href="structSignalKey.html">SignalKey</a> <a class="code hl_variable" href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a">key</a>; </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28"> 57</a></span> RawSignalValue <a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a> = std::uint64_t(0U); </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"> 58</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a> = 0.0; </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"> 59</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> = <span class="keyword">false</span>; </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6"> 60</a></span> <a class="code hl_enumeration" href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">SignalDecodeStatus</a> <a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a> = SignalDecodeStatus::InvalidDefinition; </div>
<div class="foldopen" id="foldopen00063" data-start="{" data-end="}">
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2"> 63</a></span> <span class="keyword">const</span> std::string *<a class="code hl_function" href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2">GetValueDescription</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordflow">return</span> <a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> &amp;&amp; <a class="code hl_variable" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">definition</a> ? FindValueDescription(<a class="code hl_variable" href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">definition</a>-&gt;valueDescriptions, <a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a>) : <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> }</div>
</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="foldopen" id="foldopen00071" data-start="{" data-end="};">
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html"> 71</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d"> 72</a></span> std::shared_ptr&lt;const DecodeFrame&gt; <a class="code hl_variable" href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">definition</a>; </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73"> 73</a></span> <a class="code hl_struct" href="structFrameKey.html">FrameKey</a> <a class="code hl_variable" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">key</a>; </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8"> 74</a></span> std::vector&lt;DecodedSignalValue&gt; signals; </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"> 75</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">valid</a> = <span class="keyword">false</span>; </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9"> 76</a></span> <a class="code hl_enumeration" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a> <a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> = FrameDecodeStatus::UnknownFrame; </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span>};</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>};</div>
</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="foldopen" id="foldopen00084" data-start="{" data-end="};">
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classDbcDecoder.html"> 84</a></span><span class="keyword">class </span><a class="code hl_class" href="classDbcDecoder.html">DbcDecoder</a> {</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> std::shared_ptr&lt;const DecodeFrame&gt; <a class="code hl_function" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">FindFrame</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> std::uint32_t canId,</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> <span class="keywordtype">bool</span> isExtended) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> </div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> <a class="code hl_function" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">Decode</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsValidDefinition(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal, std::uint8_t dlc);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keyword">struct </span>SelectorState {</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> *definition = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> <span class="keywordtype">bool</span> valid = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordtype">bool</span> available = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> std::uint64_t value = 0U;</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> };</div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <span class="keyword">static</span> SelectorState ReadSelector(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> &amp;definition, <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame);</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">static</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> DecodeOneSignal(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> std::uint8_t dlc,</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame,</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">const</span> SelectorState &amp;selector);</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> </div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> ExtractUnsigned(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> std::uint64_t &amp;value);</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> </div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> ExtractIntel(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> std::uint32_t length,</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> std::uint64_t &amp;value);</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> ExtractMotorola(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> std::uint32_t length,</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> std::uint64_t &amp;value);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keyword">static</span> std::int64_t SignExtend(std::uint64_t value, std::uint32_t bitLength);</div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span>};</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="foldopen" id="foldopen00073" data-start="{" data-end="};">
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html"> 73</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> {</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d"> 74</a></span> std::shared_ptr&lt;const DecodeFrame&gt; <a class="code hl_variable" href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">definition</a>; </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73"> 75</a></span> <a class="code hl_struct" href="structFrameKey.html">FrameKey</a> <a class="code hl_variable" href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">key</a>; </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8"> 76</a></span> std::vector&lt;DecodedSignalValue&gt; signals; </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"> 77</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">valid</a> = <span class="keyword">false</span>; </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9"> 78</a></span> <a class="code hl_enumeration" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a> <a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a> = FrameDecodeStatus::UnknownFrame; </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>};</div>
</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="preprocessor">#endif </span><span class="comment">/* DBC_DECODER_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aclassDbcDecoder_html"><div class="ttname"><a href="classDbcDecoder.html">DbcDecoder</a></div><div class="ttdoc">Runtime CAN decoder using prebuilt decode database.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00084">dbc_decoder.h:84</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_a345951ffe5d943a70d3a1ea1f39e74f7"><div class="ttname"><a href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a></div><div class="ttdeci">DecodedFrameValue Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const</div><div class="ttdoc">Decode one raw CAN frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00023">dbc_decoder.cpp:23</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_a4005c4311f57b7faf21c0cb31463039c"><div class="ttname"><a href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">DbcDecoder::FindFrame</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; FindFrame(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const</div><div class="ttdoc">Find frame definition by CAN ID.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00017">dbc_decoder.cpp:17</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00087">decode_database.h:87</a></div></div>
<div class="ttc" id="adbc__decoder_8h_html_a855b2bc36cb18bfbae5ff30a2394e961"><div class="ttname"><a href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a></div><div class="ttdeci">FrameDecodeStatus</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00042">dbc_decoder.h:42</a></div></div>
<div class="ttc" id="adecode__database_8h_html"><div class="ttname"><a href="decode__database_8h.html">decode_database.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</div></div>
<div class="ttc" id="astructDecodeFrame_html"><div class="ttname"><a href="structDecodeFrame.html">DecodeFrame</a></div><div class="ttdoc">Runtime-ready frame definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00065">decode_database.h:65</a></div></div>
<div class="ttc" id="astructDecodeSignal_html"><div class="ttname"><a href="structDecodeSignal.html">DecodeSignal</a></div><div class="ttdoc">Runtime-ready signal definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00043">decode_database.h:43</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html"><div class="ttname"><a href="structDecodedFrameValue.html">DecodedFrameValue</a></div><div class="ttdoc">Fully decoded frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00071">dbc_decoder.h:71</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a32143efe2023a1ecd977a9ae93e50b73"><div class="ttname"><a href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">DecodedFrameValue::key</a></div><div class="ttdeci">FrameKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00073">dbc_decoder.h:73</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a33e971ba10030506007aa201c89f351d"><div class="ttname"><a href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">DecodedFrameValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00072">dbc_decoder.h:72</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a4f51c31110dba1f73a763c596372beb0"><div class="ttname"><a href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">DecodedFrameValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00075">dbc_decoder.h:75</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a645f433798d48a2787e7f00dfbb7dff9"><div class="ttname"><a href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">DecodedFrameValue::status</a></div><div class="ttdeci">FrameDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00076">dbc_decoder.h:76</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html"><div class="ttname"><a href="structDecodedSignalValue.html">DecodedSignalValue</a></div><div class="ttdoc">One decoded signal value.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00052">dbc_decoder.h:52</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a33df0fcd92b23b3e08539906fc6b4c4a"><div class="ttname"><a href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a">DecodedSignalValue::key</a></div><div class="ttdeci">SignalKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00054">dbc_decoder.h:54</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a503c90b4b1a610b8252c45e466367c28"><div class="ttname"><a href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">DecodedSignalValue::rawValue</a></div><div class="ttdeci">RawSignalValue rawValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00055">dbc_decoder.h:55</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a6847d05b3cb00d5e0f6c611968f57978"><div class="ttname"><a href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">DecodedSignalValue::physicalValue</a></div><div class="ttdeci">double physicalValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00056">dbc_decoder.h:56</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a828b5ef7faefc14fbf5dbd46249bcad2"><div class="ttname"><a href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">DecodedSignalValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeSignal &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00053">dbc_decoder.h:53</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_aac0ed361af545cde48d0e6f41a859686"><div class="ttname"><a href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">DecodedSignalValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00057">dbc_decoder.h:57</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_affc38af1bf31bcb6f2c33044bce92bd2"><div class="ttname"><a href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2">DecodedSignalValue::GetValueDescription</a></div><div class="ttdeci">const std::string * GetValueDescription() const</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00061">dbc_decoder.h:61</a></div></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="foldopen" id="foldopen00086" data-start="{" data-end="};">
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="classDbcDecoder.html"> 86</a></span><span class="keyword">class </span><a class="code hl_class" href="classDbcDecoder.html">DbcDecoder</a> {</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> std::shared_ptr&lt;const DecodeFrame&gt; <a class="code hl_function" href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">FindFrame</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> std::uint32_t canId,</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordtype">bool</span> isExtended) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> <a class="code hl_function" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">Decode</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> <a class="code hl_function" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">Decode</a>(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame,</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keyword">const</span> std::vector&lt;SignalKey&gt; &amp;selection) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keyword">static</span> <a class="code hl_struct" href="structPgnLookupResult.html">PgnLookupResult</a> ResolveFrame(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> std::uint32_t canId, <span class="keywordtype">bool</span> isExtended);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> DecodeImpl(<span class="keyword">const</span> <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame,</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">const</span> std::vector&lt;SignalKey&gt; *selection) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsValidDefinition(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal, std::uint8_t dlc);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <span class="keyword">struct </span>SelectorState {</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> *definition = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> <span class="keywordtype">bool</span> valid = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordtype">bool</span> available = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> std::uint64_t value = 0U;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> };</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">static</span> SelectorState ReadSelector(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> &amp;definition, <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame);</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keyword">static</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> DecodeOneSignal(<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> std::uint8_t dlc,</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keyword">const</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> &amp;frame,</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> <span class="keyword">const</span> SelectorState &amp;selector);</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> </div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> ExtractUnsigned(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> std::uint64_t &amp;value);</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> ExtractIntel(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> std::uint32_t length,</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> std::uint64_t &amp;value);</div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> ExtractMotorola(<span class="keyword">const</span> std::vector&lt;std::uint8_t&gt; &amp;data,</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> std::uint32_t length,</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> std::uint64_t &amp;value);</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> </div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keyword">static</span> std::int64_t SignExtend(std::uint64_t value, std::uint32_t bitLength);</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span>};</div>
</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="preprocessor">#endif </span><span class="comment">/* DBC_DECODER_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aclassDbcDecoder_html"><div class="ttname"><a href="classDbcDecoder.html">DbcDecoder</a></div><div class="ttdoc">Runtime CAN decoder using prebuilt decode database.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00086">dbc_decoder.h:86</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_a345951ffe5d943a70d3a1ea1f39e74f7"><div class="ttname"><a href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a></div><div class="ttdeci">DecodedFrameValue Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const</div><div class="ttdoc">Decode one raw CAN frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00036">dbc_decoder.cpp:36</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_a4005c4311f57b7faf21c0cb31463039c"><div class="ttname"><a href="classDbcDecoder.html#a4005c4311f57b7faf21c0cb31463039c">DbcDecoder::FindFrame</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; FindFrame(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const</div><div class="ttdoc">Find exact CAN ID first, then unique PGN among explicitly J1939 definitions.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00020">dbc_decoder.cpp:20</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00101">decode_database.h:101</a></div></div>
<div class="ttc" id="adbc__decoder_8h_html_a5f4a41ee2810487020135b45e8d7559a"><div class="ttname"><a href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">SignalDecodeStatus</a></div><div class="ttdeci">SignalDecodeStatus</div><div class="ttdoc">Outcome of signal extraction and physical conversion.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00033">dbc_decoder.h:33</a></div></div>
<div class="ttc" id="adbc__decoder_8h_html_a855b2bc36cb18bfbae5ff30a2394e961"><div class="ttname"><a href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a></div><div class="ttdeci">FrameDecodeStatus</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00043">dbc_decoder.h:43</a></div></div>
<div class="ttc" id="adecode__database_8h_html"><div class="ttname"><a href="decode__database_8h.html">decode_database.h</a></div><div class="ttdoc">Runtime definitions and immutable indexed database.</div></div>
<div class="ttc" id="astructDecodeFrame_html"><div class="ttname"><a href="structDecodeFrame.html">DecodeFrame</a></div><div class="ttdoc">Runtime-ready frame definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00068">decode_database.h:68</a></div></div>
<div class="ttc" id="astructDecodeSignal_html"><div class="ttname"><a href="structDecodeSignal.html">DecodeSignal</a></div><div class="ttdoc">Runtime-ready signal definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00044">decode_database.h:44</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html"><div class="ttname"><a href="structDecodedFrameValue.html">DecodedFrameValue</a></div><div class="ttdoc">Fully decoded frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00073">dbc_decoder.h:73</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a32143efe2023a1ecd977a9ae93e50b73"><div class="ttname"><a href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">DecodedFrameValue::key</a></div><div class="ttdeci">FrameKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00075">dbc_decoder.h:75</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a33e971ba10030506007aa201c89f351d"><div class="ttname"><a href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">DecodedFrameValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00074">dbc_decoder.h:74</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a4f51c31110dba1f73a763c596372beb0"><div class="ttname"><a href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">DecodedFrameValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00077">dbc_decoder.h:77</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a645f433798d48a2787e7f00dfbb7dff9"><div class="ttname"><a href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">DecodedFrameValue::status</a></div><div class="ttdeci">FrameDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00078">dbc_decoder.h:78</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html"><div class="ttname"><a href="structDecodedSignalValue.html">DecodedSignalValue</a></div><div class="ttdoc">One decoded signal value.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00054">dbc_decoder.h:54</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a33df0fcd92b23b3e08539906fc6b4c4a"><div class="ttname"><a href="structDecodedSignalValue.html#a33df0fcd92b23b3e08539906fc6b4c4a">DecodedSignalValue::key</a></div><div class="ttdeci">SignalKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00056">dbc_decoder.h:56</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a503c90b4b1a610b8252c45e466367c28"><div class="ttname"><a href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">DecodedSignalValue::rawValue</a></div><div class="ttdeci">RawSignalValue rawValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00057">dbc_decoder.h:57</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a6847d05b3cb00d5e0f6c611968f57978"><div class="ttname"><a href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">DecodedSignalValue::physicalValue</a></div><div class="ttdeci">double physicalValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00058">dbc_decoder.h:58</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a828b5ef7faefc14fbf5dbd46249bcad2"><div class="ttname"><a href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">DecodedSignalValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeSignal &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00055">dbc_decoder.h:55</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a94161a80412b3961da8fd2fec43c25f6"><div class="ttname"><a href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">DecodedSignalValue::status</a></div><div class="ttdeci">SignalDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00060">dbc_decoder.h:60</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_aac0ed361af545cde48d0e6f41a859686"><div class="ttname"><a href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">DecodedSignalValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00059">dbc_decoder.h:59</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_affc38af1bf31bcb6f2c33044bce92bd2"><div class="ttname"><a href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2">DecodedSignalValue::GetValueDescription</a></div><div class="ttdeci">const std::string * GetValueDescription() const</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00063">dbc_decoder.h:63</a></div></div>
<div class="ttc" id="astructFrameKey_html"><div class="ttname"><a href="structFrameKey.html">FrameKey</a></div><div class="ttdoc">Stable frame identifier: normalized CAN ID and frame type.</div><div class="ttdef"><b>Definition</b> <a href="definition__key_8h_source.html#l00015">definition_key.h:15</a></div></div>
<div class="ttc" id="astructPgnLookupResult_html"><div class="ttname"><a href="structPgnLookupResult.html">PgnLookupResult</a></div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00092">decode_database.h:92</a></div></div>
<div class="ttc" id="astructRawCanFrame_html"><div class="ttname"><a href="structRawCanFrame.html">RawCanFrame</a></div><div class="ttdoc">Raw CAN frame used for runtime or trace decoding.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00024">dbc_decoder.h:24</a></div></div>
<div class="ttc" id="astructRawCanFrame_html_a0acb487612104c99c9907344c035df83"><div class="ttname"><a href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">RawCanFrame::data</a></div><div class="ttdeci">std::vector&lt; std::uint8_t &gt; data</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00027">dbc_decoder.h:27</a></div></div>
<div class="ttc" id="astructRawCanFrame_html_a2d0e7fa0e3d5c20bbed55ed8f7888ff4"><div class="ttname"><a href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">RawCanFrame::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00025">dbc_decoder.h:25</a></div></div>
<div class="ttc" id="astructRawCanFrame_html_a462193d275adc1dba8bd18ffa0e36bb7"><div class="ttname"><a href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">RawCanFrame::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00026">dbc_decoder.h:26</a></div></div>
<div class="ttc" id="astructSignalKey_html"><div class="ttname"><a href="structSignalKey.html">SignalKey</a></div><div class="ttdef"><b>Definition</b> <a href="definition__key_8h_source.html#l00042">definition_key.h:42</a></div></div>
<div class="ttc" id="astructSignalKey_html"><div class="ttname"><a href="structSignalKey.html">SignalKey</a></div><div class="ttdef"><b>Definition</b> <a href="definition__key_8h_source.html#l00045">definition_key.h:45</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
+43 -38
View File
@@ -301,7 +301,7 @@ $(document).ready(function(){initNavTree('dbc__decoder__test_8cpp_source.html','
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> QCOMPARE(result.signals.size(), std::size_t(2U));</div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> <span class="keywordflow">for</span> (std::size_t index = 0U; index &lt; result.signals.size(); ++index) {</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> &amp;value = result.signals[index];</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> QCOMPARE(value.status, bytes &gt; index ? SignalDecodeStatus::Valid : SignalDecodeStatus::InsufficientPayload);</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> QCOMPARE(value.<a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a>, bytes &gt; index ? SignalDecodeStatus::Valid : <a class="code hl_enumeration" href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">SignalDecodeStatus</a>::InsufficientPayload);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> QCOMPARE(value.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a>, bytes &gt; index);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keywordflow">if</span> (value.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a>) {</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> QCOMPARE(std::get&lt;std::uint64_t&gt;(value.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a>), std::uint64_t(42U));</div>
@@ -354,8 +354,8 @@ $(document).ready(function(){initNavTree('dbc__decoder__test_8cpp_source.html','
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> <span class="keywordflow">case</span> 3: bad.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a> = std::numeric_limits&lt;std::uint32_t&gt;::max(); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">case</span> 4: bad.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> = <span class="keyword">static_cast&lt;</span><a class="code hl_enumeration" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a><span class="keyword">&gt;</span>(99); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> <span class="keywordflow">case</span> 5: bad.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> = <span class="keyword">static_cast&lt;</span><a class="code hl_enumeration" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">ValueType</a><span class="keyword">&gt;</span>(99); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">case</span> 6: bad.multiplexing.role = <span class="keyword">static_cast&lt;</span>MultiplexRole<span class="keyword">&gt;</span>(99); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">case</span> 7: bad.multiplexing.role = MultiplexRole::Branch; <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <span class="keywordflow">case</span> 6: bad.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> = <span class="keyword">static_cast&lt;</span>MultiplexRole<span class="keyword">&gt;</span>(99); <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">case</span> 7: bad.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> = MultiplexRole::Branch; <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> }</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> definition.signals = {bad, good};</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> QVERIFY_THROWS_EXCEPTION(std::invalid_argument, (<span class="keywordtype">void</span>) <a class="code hl_class" href="classDecodeDatabase.html">DecodeDatabase</a>({definition}));</div>
@@ -412,7 +412,7 @@ $(document).ready(function(){initNavTree('dbc__decoder__test_8cpp_source.html','
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> QCOMPARE(result.<a class="code hl_variable" href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">status</a>, finite ? FrameDecodeStatus::Valid : <a class="code hl_enumeration" href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a>::SignalErrors);</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> &amp;scaled = result.signals[0];</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> QCOMPARE(scaled.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a>, finite);</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> QCOMPARE(scaled.status, finite ? SignalDecodeStatus::Valid : SignalDecodeStatus::PhysicalConversionFailed);</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> QCOMPARE(scaled.<a class="code hl_variable" href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">status</a>, finite ? SignalDecodeStatus::Valid : <a class="code hl_enumeration" href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">SignalDecodeStatus</a>::PhysicalConversionFailed);</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> QCOMPARE(std::isfinite(scaled.<a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a>), finite);</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">if</span> (type == ValueType::Signed)</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> QCOMPARE(std::get&lt;std::int64_t&gt;(scaled.<a class="code hl_variable" href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">rawValue</a>), std::int64_t(2));</div>
@@ -435,14 +435,14 @@ $(document).ready(function(){initNavTree('dbc__decoder__test_8cpp_source.html','
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> selector;</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> selector.<a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a> = <span class="stringliteral">&quot;Selector&quot;</span>;</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> selector.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> = 2U;</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> selector.multiplexing.role = MultiplexRole::Selector;</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> selector.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> = MultiplexRole::Selector;</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> selector.<a class="code hl_variable" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">factor</a> = std::numeric_limits&lt;double&gt;::max();</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> branch;</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> branch.<a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a> = <span class="stringliteral">&quot;Branch&quot;</span>;</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> branch.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a> = 2U;</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> branch.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> = 6U;</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> branch.multiplexing.role = MultiplexRole::Branch;</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> branch.multiplexing.value = 2U;</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> branch.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">role</a> = MultiplexRole::Branch;</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> branch.<a class="code hl_variable" href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">multiplexing</a>.<a class="code hl_variable" href="structMultiplexing.html#a79158d4fdbfd68a3d51a8ce79d34fd67">value</a> = 2U;</div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> definition.signals = {branch, selector};</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> raw;</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> raw.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a> = {170U};</div>
@@ -481,38 +481,43 @@ $(document).ready(function(){initNavTree('dbc__decoder__test_8cpp_source.html','
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span>}</div>
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> </div>
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span><span class="preprocessor">#include &quot;dbc_decoder_test.moc&quot;</span></div>
<div class="ttc" id="aclassDbcDecoder_html"><div class="ttname"><a href="classDbcDecoder.html">DbcDecoder</a></div><div class="ttdoc">Runtime CAN decoder using prebuilt decode database.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00084">dbc_decoder.h:84</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_a345951ffe5d943a70d3a1ea1f39e74f7"><div class="ttname"><a href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a></div><div class="ttdeci">DecodedFrameValue Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const</div><div class="ttdoc">Decode one raw CAN frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00023">dbc_decoder.cpp:23</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00087">decode_database.h:87</a></div></div>
<div class="ttc" id="adbc__decoder_8h_html"><div class="ttname"><a href="dbc__decoder_8h.html">dbc_decoder.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</div></div>
<div class="ttc" id="adbc__decoder_8h_html_a855b2bc36cb18bfbae5ff30a2394e961"><div class="ttname"><a href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a></div><div class="ttdeci">FrameDecodeStatus</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00042">dbc_decoder.h:42</a></div></div>
<div class="ttc" id="adecode__database_8h_html_aaeb92d42f5a6e27b8ba19f18d69d142b"><div class="ttname"><a href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a></div><div class="ttdeci">ByteOrder</div><div class="ttdoc">Signal byte order used for runtime decoding.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00027">decode_database.h:27</a></div></div>
<div class="ttc" id="adecode__database_8h_html_ad9971b6ef33e02ba2c75d19c1d2518a1"><div class="ttname"><a href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">ValueType</a></div><div class="ttdeci">ValueType</div><div class="ttdoc">Signal numeric type.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00035">decode_database.h:35</a></div></div>
<div class="ttc" id="astructDecodeFrame_html"><div class="ttname"><a href="structDecodeFrame.html">DecodeFrame</a></div><div class="ttdoc">Runtime-ready frame definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00065">decode_database.h:65</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a3ee2348d781f8f15aaf87e8dcf57ec41"><div class="ttname"><a href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">DecodeFrame::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00068">decode_database.h:68</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a51111ac13988be372d5673d12cf3e060"><div class="ttname"><a href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">DecodeFrame::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00069">decode_database.h:69</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a52e10215388db7df8b541b9d9909edcf"><div class="ttname"><a href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">DecodeFrame::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00067">decode_database.h:67</a></div></div>
<div class="ttc" id="astructDecodeSignal_html"><div class="ttname"><a href="structDecodeSignal.html">DecodeSignal</a></div><div class="ttdoc">Runtime-ready signal definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00043">decode_database.h:43</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a428c39913a366a8476dd291061354391"><div class="ttname"><a href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">DecodeSignal::factor</a></div><div class="ttdeci">double factor</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00050">decode_database.h:50</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a58cf5844f2272a23dcb9687d912e4780"><div class="ttname"><a href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">DecodeSignal::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00045">decode_database.h:45</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a822155d9bf4ed5f3300c9e9befe606ff"><div class="ttname"><a href="structDecodeSignal.html#a822155d9bf4ed5f3300c9e9befe606ff">DecodeSignal::valueDescriptions</a></div><div class="ttdeci">ValueDescriptions valueDescriptions</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00056">decode_database.h:56</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a92db637af4e224a0ae70173050dc3f74"><div class="ttname"><a href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">DecodeSignal::offset</a></div><div class="ttdeci">double offset</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00051">decode_database.h:51</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a9d37638129263b8902ba5be59baf39a8"><div class="ttname"><a href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">DecodeSignal::valueType</a></div><div class="ttdeci">ValueType valueType</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00049">decode_database.h:49</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aaf5d7527ddf65b6355c2b4f3626df22d"><div class="ttname"><a href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">DecodeSignal::startBit</a></div><div class="ttdeci">std::uint32_t startBit</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00046">decode_database.h:46</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_abdc4c4bb4a67a6d61d6ca81e8a52833d"><div class="ttname"><a href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">DecodeSignal::byteOrder</a></div><div class="ttdeci">ByteOrder byteOrder</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00048">decode_database.h:48</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_acd4ef5ee30421d117b5756854302debb"><div class="ttname"><a href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">DecodeSignal::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00047">decode_database.h:47</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html"><div class="ttname"><a href="structDecodedFrameValue.html">DecodedFrameValue</a></div><div class="ttdoc">Fully decoded frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00071">dbc_decoder.h:71</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a32143efe2023a1ecd977a9ae93e50b73"><div class="ttname"><a href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">DecodedFrameValue::key</a></div><div class="ttdeci">FrameKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00073">dbc_decoder.h:73</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a33e971ba10030506007aa201c89f351d"><div class="ttname"><a href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">DecodedFrameValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00072">dbc_decoder.h:72</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a4f51c31110dba1f73a763c596372beb0"><div class="ttname"><a href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">DecodedFrameValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00075">dbc_decoder.h:75</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a645f433798d48a2787e7f00dfbb7dff9"><div class="ttname"><a href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">DecodedFrameValue::status</a></div><div class="ttdeci">FrameDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00076">dbc_decoder.h:76</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html"><div class="ttname"><a href="structDecodedSignalValue.html">DecodedSignalValue</a></div><div class="ttdoc">One decoded signal value.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00052">dbc_decoder.h:52</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a503c90b4b1a610b8252c45e466367c28"><div class="ttname"><a href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">DecodedSignalValue::rawValue</a></div><div class="ttdeci">RawSignalValue rawValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00055">dbc_decoder.h:55</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a6847d05b3cb00d5e0f6c611968f57978"><div class="ttname"><a href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">DecodedSignalValue::physicalValue</a></div><div class="ttdeci">double physicalValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00056">dbc_decoder.h:56</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a828b5ef7faefc14fbf5dbd46249bcad2"><div class="ttname"><a href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">DecodedSignalValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeSignal &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00053">dbc_decoder.h:53</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_aac0ed361af545cde48d0e6f41a859686"><div class="ttname"><a href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">DecodedSignalValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00057">dbc_decoder.h:57</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_affc38af1bf31bcb6f2c33044bce92bd2"><div class="ttname"><a href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2">DecodedSignalValue::GetValueDescription</a></div><div class="ttdeci">const std::string * GetValueDescription() const</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00061">dbc_decoder.h:61</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html"><div class="ttname"><a href="classDbcDecoder.html">DbcDecoder</a></div><div class="ttdoc">Runtime CAN decoder using prebuilt decode database.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00086">dbc_decoder.h:86</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_a345951ffe5d943a70d3a1ea1f39e74f7"><div class="ttname"><a href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder::Decode</a></div><div class="ttdeci">DecodedFrameValue Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const</div><div class="ttdoc">Decode one raw CAN frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8cpp_source.html#l00036">dbc_decoder.cpp:36</a></div></div>
<div class="ttc" id="aclassDecodeDatabase_html"><div class="ttname"><a href="classDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Immutable runtime snapshot. Copies share storage; reload replaces a snapshot. Owning lookup handles a...</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00101">decode_database.h:101</a></div></div>
<div class="ttc" id="adbc__decoder_8h_html"><div class="ttname"><a href="dbc__decoder_8h.html">dbc_decoder.h</a></div><div class="ttdoc">CAN frame decoding API and result types.</div></div>
<div class="ttc" id="adbc__decoder_8h_html_a5f4a41ee2810487020135b45e8d7559a"><div class="ttname"><a href="dbc__decoder_8h.html#a5f4a41ee2810487020135b45e8d7559a">SignalDecodeStatus</a></div><div class="ttdeci">SignalDecodeStatus</div><div class="ttdoc">Outcome of signal extraction and physical conversion.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00033">dbc_decoder.h:33</a></div></div>
<div class="ttc" id="adbc__decoder_8h_html_a855b2bc36cb18bfbae5ff30a2394e961"><div class="ttname"><a href="dbc__decoder_8h.html#a855b2bc36cb18bfbae5ff30a2394e961">FrameDecodeStatus</a></div><div class="ttdeci">FrameDecodeStatus</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00043">dbc_decoder.h:43</a></div></div>
<div class="ttc" id="adecode__database_8h_html_aaeb92d42f5a6e27b8ba19f18d69d142b"><div class="ttname"><a href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a></div><div class="ttdeci">ByteOrder</div><div class="ttdoc">Signal byte order used for runtime decoding.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00028">decode_database.h:28</a></div></div>
<div class="ttc" id="adecode__database_8h_html_ad9971b6ef33e02ba2c75d19c1d2518a1"><div class="ttname"><a href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">ValueType</a></div><div class="ttdeci">ValueType</div><div class="ttdoc">Signal numeric type.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00036">decode_database.h:36</a></div></div>
<div class="ttc" id="astructDecodeFrame_html"><div class="ttname"><a href="structDecodeFrame.html">DecodeFrame</a></div><div class="ttdoc">Runtime-ready frame definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00068">decode_database.h:68</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a3ee2348d781f8f15aaf87e8dcf57ec41"><div class="ttname"><a href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">DecodeFrame::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00071">decode_database.h:71</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a51111ac13988be372d5673d12cf3e060"><div class="ttname"><a href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">DecodeFrame::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00072">decode_database.h:72</a></div></div>
<div class="ttc" id="astructDecodeFrame_html_a52e10215388db7df8b541b9d9909edcf"><div class="ttname"><a href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">DecodeFrame::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00070">decode_database.h:70</a></div></div>
<div class="ttc" id="astructDecodeSignal_html"><div class="ttname"><a href="structDecodeSignal.html">DecodeSignal</a></div><div class="ttdoc">Runtime-ready signal definition.</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00044">decode_database.h:44</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a428c39913a366a8476dd291061354391"><div class="ttname"><a href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">DecodeSignal::factor</a></div><div class="ttdeci">double factor</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00051">decode_database.h:51</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a58cf5844f2272a23dcb9687d912e4780"><div class="ttname"><a href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">DecodeSignal::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00046">decode_database.h:46</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a822155d9bf4ed5f3300c9e9befe606ff"><div class="ttname"><a href="structDecodeSignal.html#a822155d9bf4ed5f3300c9e9befe606ff">DecodeSignal::valueDescriptions</a></div><div class="ttdeci">ValueDescriptions valueDescriptions</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00057">decode_database.h:57</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a92db637af4e224a0ae70173050dc3f74"><div class="ttname"><a href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">DecodeSignal::offset</a></div><div class="ttdeci">double offset</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00052">decode_database.h:52</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_a9d37638129263b8902ba5be59baf39a8"><div class="ttname"><a href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">DecodeSignal::valueType</a></div><div class="ttdeci">ValueType valueType</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00050">decode_database.h:50</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aaf5d7527ddf65b6355c2b4f3626df22d"><div class="ttname"><a href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">DecodeSignal::startBit</a></div><div class="ttdeci">std::uint32_t startBit</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00047">decode_database.h:47</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_abdc4c4bb4a67a6d61d6ca81e8a52833d"><div class="ttname"><a href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">DecodeSignal::byteOrder</a></div><div class="ttdeci">ByteOrder byteOrder</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00049">decode_database.h:49</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_acd4ef5ee30421d117b5756854302debb"><div class="ttname"><a href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">DecodeSignal::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00048">decode_database.h:48</a></div></div>
<div class="ttc" id="astructDecodeSignal_html_aea41c055cb255fe7bd178ed5727f28c9"><div class="ttname"><a href="structDecodeSignal.html#aea41c055cb255fe7bd178ed5727f28c9">DecodeSignal::multiplexing</a></div><div class="ttdeci">Multiplexing multiplexing</div><div class="ttdef"><b>Definition</b> <a href="decode__database_8h_source.html#l00045">decode_database.h:45</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html"><div class="ttname"><a href="structDecodedFrameValue.html">DecodedFrameValue</a></div><div class="ttdoc">Fully decoded frame.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00073">dbc_decoder.h:73</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a32143efe2023a1ecd977a9ae93e50b73"><div class="ttname"><a href="structDecodedFrameValue.html#a32143efe2023a1ecd977a9ae93e50b73">DecodedFrameValue::key</a></div><div class="ttdeci">FrameKey key</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00075">dbc_decoder.h:75</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a33e971ba10030506007aa201c89f351d"><div class="ttname"><a href="structDecodedFrameValue.html#a33e971ba10030506007aa201c89f351d">DecodedFrameValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeFrame &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00074">dbc_decoder.h:74</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a4f51c31110dba1f73a763c596372beb0"><div class="ttname"><a href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">DecodedFrameValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00077">dbc_decoder.h:77</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a645f433798d48a2787e7f00dfbb7dff9"><div class="ttname"><a href="structDecodedFrameValue.html#a645f433798d48a2787e7f00dfbb7dff9">DecodedFrameValue::status</a></div><div class="ttdeci">FrameDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00078">dbc_decoder.h:78</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html"><div class="ttname"><a href="structDecodedSignalValue.html">DecodedSignalValue</a></div><div class="ttdoc">One decoded signal value.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00054">dbc_decoder.h:54</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a503c90b4b1a610b8252c45e466367c28"><div class="ttname"><a href="structDecodedSignalValue.html#a503c90b4b1a610b8252c45e466367c28">DecodedSignalValue::rawValue</a></div><div class="ttdeci">RawSignalValue rawValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00057">dbc_decoder.h:57</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a6847d05b3cb00d5e0f6c611968f57978"><div class="ttname"><a href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">DecodedSignalValue::physicalValue</a></div><div class="ttdeci">double physicalValue</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00058">dbc_decoder.h:58</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a828b5ef7faefc14fbf5dbd46249bcad2"><div class="ttname"><a href="structDecodedSignalValue.html#a828b5ef7faefc14fbf5dbd46249bcad2">DecodedSignalValue::definition</a></div><div class="ttdeci">std::shared_ptr&lt; const DecodeSignal &gt; definition</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00055">dbc_decoder.h:55</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a94161a80412b3961da8fd2fec43c25f6"><div class="ttname"><a href="structDecodedSignalValue.html#a94161a80412b3961da8fd2fec43c25f6">DecodedSignalValue::status</a></div><div class="ttdeci">SignalDecodeStatus status</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00060">dbc_decoder.h:60</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_aac0ed361af545cde48d0e6f41a859686"><div class="ttname"><a href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">DecodedSignalValue::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00059">dbc_decoder.h:59</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_affc38af1bf31bcb6f2c33044bce92bd2"><div class="ttname"><a href="structDecodedSignalValue.html#affc38af1bf31bcb6f2c33044bce92bd2">DecodedSignalValue::GetValueDescription</a></div><div class="ttdeci">const std::string * GetValueDescription() const</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00063">dbc_decoder.h:63</a></div></div>
<div class="ttc" id="astructFrameKey_html"><div class="ttname"><a href="structFrameKey.html">FrameKey</a></div><div class="ttdoc">Stable frame identifier: normalized CAN ID and frame type.</div><div class="ttdef"><b>Definition</b> <a href="definition__key_8h_source.html#l00015">definition_key.h:15</a></div></div>
<div class="ttc" id="astructMultiplexing_html_a62b70a0e3f2a9c7a457b3694ce8625c3"><div class="ttname"><a href="structMultiplexing.html#a62b70a0e3f2a9c7a457b3694ce8625c3">Multiplexing::role</a></div><div class="ttdeci">MultiplexRole role</div><div class="ttdef"><b>Definition</b> <a href="multiplexing_8h_source.html#l00016">multiplexing.h:16</a></div></div>
<div class="ttc" id="astructMultiplexing_html_a79158d4fdbfd68a3d51a8ce79d34fd67"><div class="ttname"><a href="structMultiplexing.html#a79158d4fdbfd68a3d51a8ce79d34fd67">Multiplexing::value</a></div><div class="ttdeci">std::uint64_t value</div><div class="ttdef"><b>Definition</b> <a href="multiplexing_8h_source.html#l00017">multiplexing.h:17</a></div></div>
<div class="ttc" id="astructRawCanFrame_html"><div class="ttname"><a href="structRawCanFrame.html">RawCanFrame</a></div><div class="ttdoc">Raw CAN frame used for runtime or trace decoding.</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00024">dbc_decoder.h:24</a></div></div>
<div class="ttc" id="astructRawCanFrame_html_a0acb487612104c99c9907344c035df83"><div class="ttname"><a href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">RawCanFrame::data</a></div><div class="ttdeci">std::vector&lt; std::uint8_t &gt; data</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00027">dbc_decoder.h:27</a></div></div>
<div class="ttc" id="astructRawCanFrame_html_a2d0e7fa0e3d5c20bbed55ed8f7888ff4"><div class="ttname"><a href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">RawCanFrame::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition</b> <a href="dbc__decoder_8h_source.html#l00025">dbc_decoder.h:25</a></div></div>
Loaded 100 of 433 files, more files were not shown because too many files have changed in this diff. Show more