Compare commits

..

4 Commits

Author SHA1 Message Date
38ce043ae0 updated documentation 2026-06-14 21:05:20 -04:00
4c8af9f9fe Updated optimized doxyfile 2026-06-14 21:04:43 -04:00
dfec39d996 Generated foxygen documentation. Closes #1 2026-06-14 20:51:56 -04:00
e2c07dde0d dsoxygen config was added 2026-06-14 20:44:55 -04:00
320 changed files with 32987 additions and 0 deletions

285
Doxyfile Normal file
View File

@@ -0,0 +1,285 @@
# Doxyfile optimized for C++ / Qt / Qt Creator Help
# Generated for DBC Framework
#---------------------------------------------------------------------------
# Project
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "DBC Framework"
PROJECT_BRIEF = "DBC parsing and CAN signal decoding framework"
PROJECT_NUMBER =
OUTPUT_DIRECTORY = docs
OUTPUT_LANGUAGE = English
OUTPUT_TEXT_DIRECTION = None
# Stable output: useful for git diffs
HTML_TIMESTAMP = NO
#---------------------------------------------------------------------------
# Input
#---------------------------------------------------------------------------
INPUT = . README.md
INPUT_ENCODING = UTF-8
RECURSIVE = YES
FILE_PATTERNS = *.h \
*.hpp \
*.hh \
*.hxx \
*.cpp \
*.cc \
*.cxx \
*.c++ \
*.md
EXCLUDE = .git \
build \
docs
EXCLUDE_PATTERNS = */.git/* \
*/build/* \
*/build-*/* \
*/docs/* \
*/moc_* \
*/ui_* \
*/qrc_* \
*/CMakeFiles/* \
*/Testing/*
EXCLUDE_SYMLINKS = YES
#---------------------------------------------------------------------------
# General C++ / Qt parsing
#---------------------------------------------------------------------------
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
BUILTIN_STL_SUPPORT = YES
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
# Java-style comments are convenient in C++ projects:
# /**
# * @brief ...
# */
JAVADOC_AUTOBRIEF = NO
QT_AUTOBRIEF = YES
MULTILINE_CPP_IS_BRIEF = NO
#---------------------------------------------------------------------------
# Extraction policy
#---------------------------------------------------------------------------
# Public/API-oriented documentation.
# For internal documentation, change these to YES in a separate Doxyfile.internal.
EXTRACT_ALL = NO
EXTRACT_PRIVATE = NO
EXTRACT_PRIV_VIRTUAL = NO
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
INTERNAL_DOCS = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
#---------------------------------------------------------------------------
# Output organization
#---------------------------------------------------------------------------
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = YES
FULL_PATH_NAMES = NO
SHORT_NAMES = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
# Keep API order close to header order. Usually nicer for hand-written C++ APIs.
SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = YES
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
SHOW_INCLUDE_FILES = YES
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
INLINE_INFO = YES
FORCE_LOCAL_INCLUDES = NO
#---------------------------------------------------------------------------
# Warnings
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = docs/doxygen_warnings.log
#---------------------------------------------------------------------------
# Source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = YES
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
REFERENCES_LINK_SOURCE = YES
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_DYNAMIC_SECTIONS = YES
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
GENERATE_TREEVIEW = YES
DISABLE_INDEX = NO
FULL_SIDEBAR = NO
HTML_INDEX_NUM_ENTRIES = 100
TREEVIEW_WIDTH = 280
ENUM_VALUES_PER_LINE = 4
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
#---------------------------------------------------------------------------
# Qt Creator / Qt Help output
#---------------------------------------------------------------------------
# Result: docs/html/dbc.qch
# In Qt Creator: Edit -> Preferences/Options -> Help -> Documentation -> Add
GENERATE_QHP = YES
QCH_FILE = dbc.qch
QHP_NAMESPACE = ca.himro.dbcframework
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME = "DBC Framework"
QHP_CUST_FILT_ATTRS = dbc framework c++ qt
QHP_SECT_FILTER_ATTRS = dbc framework c++ qt
QHG_LOCATION = qhelpgenerator
# Not useful on Linux/Qt Creator workflow
GENERATE_HTMLHELP = NO
GENERATE_DOCSET = NO
GENERATE_ECLIPSEHELP = NO
#---------------------------------------------------------------------------
# Other output formats disabled
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
GENERATE_RTF = NO
GENERATE_MAN = NO
GENERATE_XML = NO
GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
#---------------------------------------------------------------------------
# Preprocessor / Qt macros
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS = *.h *.hpp *.hh *.hxx
PREDEFINED = DOXYGEN \
Q_OBJECT= \
Q_GADGET= \
Q_NAMESPACE= \
Q_ENUM(...)= \
Q_ENUM_NS(...)= \
Q_FLAG(...)= \
Q_FLAG_NS(...)= \
Q_PROPERTY(...)= \
Q_DECLARE_FLAGS(...)= \
Q_DECLARE_OPERATORS_FOR_FLAGS(...)= \
Q_INTERFACES(...)= \
Q_CLASSINFO(...)= \
Q_PLUGIN_METADATA(...)= \
Q_INVOKABLE= \
Q_SIGNAL= \
Q_SLOT= \
Q_SIGNALS=public \
Q_SLOTS= \
Q_EMIT= \
signals=public \
slots= \
emit= \
Q_DECL_OVERRIDE=override \
Q_DECL_FINAL=final \
Q_DECL_DEPRECATED= \
Q_DECL_DEPRECATED_X(...)= \
QT_BEGIN_NAMESPACE= \
QT_END_NAMESPACE= \
QT_FORWARD_DECLARE_CLASS(...)= \
Q_DISABLE_COPY(...)= \
Q_DISABLE_COPY_MOVE(...)= \
Q_UNUSED(...)=
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Graphviz / diagrams
#---------------------------------------------------------------------------
# For Qt Creator help, diagrams are useful, but call/caller graphs are noisy and slow.
HAVE_DOT = YES
DOT_NUM_THREADS = 0
DOT_IMAGE_FORMAT = svg
INTERACTIVE_SVG = YES
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = YES
DOT_CLEANUP = YES
CLASS_DIAGRAMS = YES
CLASS_GRAPH = YES
COLLABORATION_GRAPH = NO
GROUP_GRAPHS = YES
UML_LOOK = YES
UML_LIMIT_NUM_FIELDS = 12
TEMPLATE_RELATIONS = YES
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = NO
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 2
GENERATE_LEGEND = YES
#---------------------------------------------------------------------------
# Indexes / lists
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
#---------------------------------------------------------------------------
# External references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE = docs/dbcframework.tag
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
PERL_PATH = /usr/bin/perl

693
docs/dbcframework.tag Normal file
View File

@@ -0,0 +1,693 @@
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<tagfile doxygen_version="1.9.4">
<compound kind="file">
<name>dbc_database.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__database_8h.html</filename>
<includes id="frame__info_8h" name="frame_info.h" local="yes" imported="no">frame_info.h</includes>
<class kind="struct">DbcDatabase</class>
</compound>
<compound kind="file">
<name>dbc_decode_builder.cpp</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__decode__builder_8cpp.html</filename>
<includes id="dbc__decode__builder_8h" name="dbc_decode_builder.h" local="yes" imported="no">dbc_decode_builder.h</includes>
</compound>
<compound kind="file">
<name>dbc_decode_builder.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__decode__builder_8h.html</filename>
<includes id="dbc__database_8h" name="dbc_database.h" local="yes" imported="no">dbc_database.h</includes>
<includes id="decode__database_8h" name="decode_database.h" local="yes" imported="no">decode_database.h</includes>
<class kind="class">DbcDecodeBuilder</class>
</compound>
<compound kind="file">
<name>dbc_decoder.cpp</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__decoder_8cpp.html</filename>
<includes id="dbc__decoder_8h" name="dbc_decoder.h" local="yes" imported="no">dbc_decoder.h</includes>
</compound>
<compound kind="file">
<name>dbc_decoder.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__decoder_8h.html</filename>
<includes id="decode__database_8h" name="decode_database.h" local="yes" imported="no">decode_database.h</includes>
<class kind="struct">RawCanFrame</class>
<class kind="struct">DecodedSignalValue</class>
<class kind="struct">DecodedFrameValue</class>
<class kind="class">DbcDecoder</class>
</compound>
<compound kind="file">
<name>dbc_parser.cpp</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__parser_8cpp.html</filename>
<includes id="dbc__parser_8h" name="dbc_parser.h" local="yes" imported="no">dbc_parser.h</includes>
</compound>
<compound kind="file">
<name>dbc_parser.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__parser_8h.html</filename>
<includes id="dbc__database_8h" name="dbc_database.h" local="yes" imported="no">dbc_database.h</includes>
<class kind="class">DbcParser</class>
</compound>
<compound kind="file">
<name>dbc_tree_builder.cpp</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__tree__builder_8cpp.html</filename>
<includes id="dbc__tree__builder_8h" name="dbc_tree_builder.h" local="yes" imported="no">dbc_tree_builder.h</includes>
</compound>
<compound kind="file">
<name>dbc_tree_builder.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>dbc__tree__builder_8h.html</filename>
<includes id="dbc__database_8h" name="dbc_database.h" local="yes" imported="no">dbc_database.h</includes>
<includes id="tree__node_8h" name="tree_node.h" local="yes" imported="no">tree_node.h</includes>
<class kind="class">DbcTreeBuilder</class>
</compound>
<compound kind="file">
<name>decode_database.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>decode__database_8h.html</filename>
<class kind="struct">DecodeSignal</class>
<class kind="struct">DecodeFrame</class>
<class kind="struct">FrameKey</class>
<class kind="struct">FrameKeyHasher</class>
<class kind="struct">DecodeDatabase</class>
<member kind="enumeration">
<type></type>
<name>ByteOrder</name>
<anchorfile>decode__database_8h.html</anchorfile>
<anchor>aaeb92d42f5a6e27b8ba19f18d69d142b</anchor>
<arglist></arglist>
<enumvalue file="decode__database_8h.html" anchor="aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5">Intel</enumvalue>
<enumvalue file="decode__database_8h.html" anchor="aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31">Motorola</enumvalue>
</member>
<member kind="enumeration">
<type></type>
<name>ValueType</name>
<anchorfile>decode__database_8h.html</anchorfile>
<anchor>ad9971b6ef33e02ba2c75d19c1d2518a1</anchor>
<arglist></arglist>
<enumvalue file="decode__database_8h.html" anchor="ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a">Unsigned</enumvalue>
<enumvalue file="decode__database_8h.html" anchor="ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379">Signed</enumvalue>
</member>
</compound>
<compound kind="file">
<name>frame_info.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>frame__info_8h.html</filename>
<includes id="signal__info_8h" name="signal_info.h" local="yes" imported="no">signal_info.h</includes>
<class kind="struct">FrameInfo</class>
</compound>
<compound kind="file">
<name>main.cpp</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>main_8cpp.html</filename>
<includes id="dbc__parser_8h" name="dbc_parser.h" local="yes" imported="no">dbc_parser.h</includes>
<includes id="dbc__tree__builder_8h" name="dbc_tree_builder.h" local="yes" imported="no">dbc_tree_builder.h</includes>
<includes id="dbc__decode__builder_8h" name="dbc_decode_builder.h" local="yes" imported="no">dbc_decode_builder.h</includes>
<includes id="dbc__decoder_8h" name="dbc_decoder.h" local="yes" imported="no">dbc_decoder.h</includes>
</compound>
<compound kind="file">
<name>signal_info.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>signal__info_8h.html</filename>
<class kind="struct">SignalInfo</class>
</compound>
<compound kind="file">
<name>tree_node.cpp</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>tree__node_8cpp.html</filename>
<includes id="tree__node_8h" name="tree_node.h" local="yes" imported="no">tree_node.h</includes>
</compound>
<compound kind="file">
<name>tree_node.h</name>
<path>/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/</path>
<filename>tree__node_8h.html</filename>
<includes id="frame__info_8h" name="frame_info.h" local="yes" imported="no">frame_info.h</includes>
<includes id="signal__info_8h" name="signal_info.h" local="yes" imported="no">signal_info.h</includes>
<class kind="class">TreeNode</class>
<member kind="enumeration">
<type></type>
<name>NodeType</name>
<anchorfile>tree__node_8h.html</anchorfile>
<anchor>acac9cbaeea226ed297804c012dc12b16</anchor>
<arglist></arglist>
<enumvalue file="tree__node_8h.html" anchor="acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad">Root</enumvalue>
<enumvalue file="tree__node_8h.html" anchor="acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a">Frame</enumvalue>
<enumvalue file="tree__node_8h.html" anchor="acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398">Signal</enumvalue>
</member>
</compound>
<compound kind="struct">
<name>DbcDatabase</name>
<filename>structDbcDatabase.html</filename>
<member kind="variable">
<type>std::vector&lt; FrameInfo &gt;</type>
<name>frames</name>
<anchorfile>structDbcDatabase.html</anchorfile>
<anchor>a2cade5d0234ee816132127542f8c612b</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="class">
<name>DbcDecodeBuilder</name>
<filename>classDbcDecodeBuilder.html</filename>
<member kind="function">
<type>DecodeDatabase</type>
<name>Build</name>
<anchorfile>classDbcDecodeBuilder.html</anchorfile>
<anchor>a2bc6386dfb5e58976c42e22c19ec471b</anchor>
<arglist>(const DbcDatabase &amp;source) const</arglist>
</member>
</compound>
<compound kind="class">
<name>DbcDecoder</name>
<filename>classDbcDecoder.html</filename>
<member kind="function">
<type>const DecodeFrame *</type>
<name>FindFrame</name>
<anchorfile>classDbcDecoder.html</anchorfile>
<anchor>ab2cfb2fb711c95d3a29365546b89f3da</anchor>
<arglist>(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const</arglist>
</member>
<member kind="function">
<type>DecodedFrameValue</type>
<name>Decode</name>
<anchorfile>classDbcDecoder.html</anchorfile>
<anchor>a345951ffe5d943a70d3a1ea1f39e74f7</anchor>
<arglist>(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const</arglist>
</member>
</compound>
<compound kind="class">
<name>DbcParser</name>
<filename>classDbcParser.html</filename>
<member kind="function">
<type>DbcDatabase</type>
<name>ParseFile</name>
<anchorfile>classDbcParser.html</anchorfile>
<anchor>aef72826942c9095d653fafa435855e56</anchor>
<arglist>(const std::string &amp;filePath) const</arglist>
</member>
</compound>
<compound kind="class">
<name>DbcTreeBuilder</name>
<filename>classDbcTreeBuilder.html</filename>
<member kind="function">
<type>std::unique_ptr&lt; TreeNode &gt;</type>
<name>Build</name>
<anchorfile>classDbcTreeBuilder.html</anchorfile>
<anchor>a7e57d067d831b14b383947fd125edd4b</anchor>
<arglist>(const DbcDatabase &amp;database) const</arglist>
</member>
</compound>
<compound kind="struct">
<name>DecodeDatabase</name>
<filename>structDecodeDatabase.html</filename>
</compound>
<compound kind="struct">
<name>DecodedFrameValue</name>
<filename>structDecodedFrameValue.html</filename>
<member kind="variable">
<type>const DecodeFrame *</type>
<name>definition</name>
<anchorfile>structDecodedFrameValue.html</anchorfile>
<anchor>a60dda1cc352d2c8087f0bdbc81dd266c</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::vector&lt; DecodedSignalValue &gt;</type>
<name>public</name>
<anchorfile>structDecodedFrameValue.html</anchorfile>
<anchor>adae123ac7fbb4a5c314b64b01109f4a8</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>valid</name>
<anchorfile>structDecodedFrameValue.html</anchorfile>
<anchor>a4f51c31110dba1f73a763c596372beb0</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="struct">
<name>DecodedSignalValue</name>
<filename>structDecodedSignalValue.html</filename>
<member kind="variable">
<type>const DecodeSignal *</type>
<name>definition</name>
<anchorfile>structDecodedSignalValue.html</anchorfile>
<anchor>acadc3b3bb21dd6b0412d342c7e6b20d7</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::int64_t</type>
<name>rawValue</name>
<anchorfile>structDecodedSignalValue.html</anchorfile>
<anchor>a5138b825940e34689f7b3891627ee9ec</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>physicalValue</name>
<anchorfile>structDecodedSignalValue.html</anchorfile>
<anchor>a6847d05b3cb00d5e0f6c611968f57978</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>valid</name>
<anchorfile>structDecodedSignalValue.html</anchorfile>
<anchor>aac0ed361af545cde48d0e6f41a859686</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="struct">
<name>DecodeFrame</name>
<filename>structDecodeFrame.html</filename>
<member kind="variable">
<type>std::string</type>
<name>name</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>aa0a7f8fd5bfde2148dfd0d838328f579</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint32_t</type>
<name>canId</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>a52e10215388db7df8b541b9d9909edcf</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>isExtended</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>a3ee2348d781f8f15aaf87e8dcf57ec41</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint8_t</type>
<name>dlc</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>a51111ac13988be372d5673d12cf3e060</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint32_t</type>
<name>pgn</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>a1d3c54055c0cbceb73adf551f7067f23</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>hasPgn</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>a2551102670c4a540fced4c71da0b369d</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::string</type>
<name>transmitter</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>ad78241dc40c793aabb8495b6989b81a9</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::string</type>
<name>comment</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>a25819ef907a32391af5c9f7cae9cdb22</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::vector&lt; DecodeSignal &gt;</type>
<name>public</name>
<anchorfile>structDecodeFrame.html</anchorfile>
<anchor>a7f4e71bbdec3f424b625e724e3dfbf14</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="struct">
<name>DecodeSignal</name>
<filename>structDecodeSignal.html</filename>
<member kind="variable">
<type>std::string</type>
<name>name</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>a58cf5844f2272a23dcb9687d912e4780</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint32_t</type>
<name>startBit</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>aaf5d7527ddf65b6355c2b4f3626df22d</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint32_t</type>
<name>length</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>acd4ef5ee30421d117b5756854302debb</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>ByteOrder</type>
<name>byteOrder</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>abdc4c4bb4a67a6d61d6ca81e8a52833d</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>ValueType</type>
<name>valueType</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>a9d37638129263b8902ba5be59baf39a8</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>factor</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>a428c39913a366a8476dd291061354391</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>offset</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>a92db637af4e224a0ae70173050dc3f74</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>minimum</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>a0fb84e19a0ab3bd50b6f65c1075ebc25</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>maximum</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>a4a6ba87142a9badbf0ca830e9e709cb7</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::string</type>
<name>unit</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>a38eed9ca7581423fd8bfbedcffc12092</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::vector&lt; std::string &gt;</type>
<name>receivers</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>abdbae62a64d2df716bf60c6b67b30eaa</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::string</type>
<name>comment</name>
<anchorfile>structDecodeSignal.html</anchorfile>
<anchor>ae28c905d4a2bc86419c2a8361bfea473</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="struct">
<name>FrameInfo</name>
<filename>structFrameInfo.html</filename>
<member kind="variable">
<type>std::string</type>
<name>name</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>abb53a7f93ed7abc0ea1ae4a8ccafcdcb</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint32_t</type>
<name>canId</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>af470b0742c05bfbffc31c51a68f5c05e</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>isExtended</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>a34b726afaad2ac5c697fdb2ac070cdaf</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint32_t</type>
<name>pgn</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>aee518b33f1000bf0b7f6e4a87474c943</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>hasPgn</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>a4737a5420213ad4304724e39f3a4e55d</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint8_t</type>
<name>dlc</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>aa2b198ea0f55e560c123d35e7b3ecab9</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::string</type>
<name>transmitter</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>a92749ec3798d4211a505860fb389a9e8</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::string</type>
<name>comment</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>ace75121294f9d89b762080ab5643293c</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::vector&lt; SignalInfo &gt;</type>
<name>public</name>
<anchorfile>structFrameInfo.html</anchorfile>
<anchor>a3f7e25d67ddae22f2ed50823a5a26084</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="struct">
<name>FrameKey</name>
<filename>structFrameKey.html</filename>
</compound>
<compound kind="struct">
<name>FrameKeyHasher</name>
<filename>structFrameKeyHasher.html</filename>
</compound>
<compound kind="struct">
<name>RawCanFrame</name>
<filename>structRawCanFrame.html</filename>
<member kind="variable">
<type>std::uint32_t</type>
<name>canId</name>
<anchorfile>structRawCanFrame.html</anchorfile>
<anchor>a2d0e7fa0e3d5c20bbed55ed8f7888ff4</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>isExtended</name>
<anchorfile>structRawCanFrame.html</anchorfile>
<anchor>a462193d275adc1dba8bd18ffa0e36bb7</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::vector&lt; std::uint8_t &gt;</type>
<name>data</name>
<anchorfile>structRawCanFrame.html</anchorfile>
<anchor>a0acb487612104c99c9907344c035df83</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="struct">
<name>SignalInfo</name>
<filename>structSignalInfo.html</filename>
<member kind="variable">
<type>std::string</type>
<name>name</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>a379e422a00cad56f896cacf60455b088</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint32_t</type>
<name>startBit</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>ace290724f9801521609aedaa946d61f1</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::uint32_t</type>
<name>length</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>a1008b5201f71848177217bd52fb84baa</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>isLittleEndian</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>af363b1563fb4c7cc8973f9a80c06846c</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>bool</type>
<name>isSigned</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>a52a52b320eef92fbcb4626307f9a498f</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>factor</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>ae4f78d99a2750aa564d7eba860171499</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>offset</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>ab7d0769f47aa540656b22e4e49db517e</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>minimum</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>ada7bf94fbeaa26bd08c73982b5af255b</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>double</type>
<name>maximum</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>adf1c4331b9eabced0d7fdda40ff0eb52</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::string</type>
<name>unit</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>a1f214f03e94ef5794de2d3367bfcbd01</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::vector&lt; std::string &gt;</type>
<name>receivers</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>a2c95562fd0b29327a7fd7b1e6feee7f3</anchor>
<arglist></arglist>
</member>
<member kind="variable">
<type>std::string</type>
<name>comment</name>
<anchorfile>structSignalInfo.html</anchorfile>
<anchor>ac99ba7563a5dad01e39c4257216953f5</anchor>
<arglist></arglist>
</member>
</compound>
<compound kind="class">
<name>TreeNode</name>
<filename>classTreeNode.html</filename>
<member kind="function">
<type></type>
<name>TreeNode</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>a984a98d5ccf7ef1f5a18094c6821f35d</anchor>
<arglist>()</arglist>
</member>
<member kind="function">
<type></type>
<name>TreeNode</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>a8e38dd591d8801d7ee3a7dbad90c67fc</anchor>
<arglist>(const FrameInfo &amp;frame)</arglist>
</member>
<member kind="function">
<type></type>
<name>TreeNode</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>ab9f00f5253d56461bb2d420fd639c5ae</anchor>
<arglist>(const SignalInfo &amp;signal)</arglist>
</member>
<member kind="function">
<type>void</type>
<name>AddChild</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>a6161f2ebb92184eab4215d121870e788</anchor>
<arglist>(std::unique_ptr&lt; TreeNode &gt; child)</arglist>
</member>
<member kind="function">
<type>std::size_t</type>
<name>GetChildCount</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>abdd82460187dca8d3e5d66f5d5c529ea</anchor>
<arglist>() const</arglist>
</member>
<member kind="function">
<type>const TreeNode *</type>
<name>GetChild</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>a4727ff801a2d1b9323c5ae50a35457a6</anchor>
<arglist>(std::size_t index) const</arglist>
</member>
<member kind="function">
<type>TreeNode *</type>
<name>GetChild</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>a81047bd7d2a4cc96b9ef5e20d0d63b5f</anchor>
<arglist>(std::size_t index)</arglist>
</member>
<member kind="function">
<type>NodeType</type>
<name>GetType</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>afa2f4b0aafa12d3d41ed00df8e0250c9</anchor>
<arglist>() const</arglist>
</member>
<member kind="function">
<type>const std::string &amp;</type>
<name>GetName</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>aaac5b8d9dc9e5ae1f367d1adbcf20e18</anchor>
<arglist>() const</arglist>
</member>
<member kind="function">
<type>const FrameInfo *</type>
<name>GetFrame</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>afc503b40004764163605d6dbdb4ef811</anchor>
<arglist>() const</arglist>
</member>
<member kind="function">
<type>const SignalInfo *</type>
<name>GetSignal</name>
<anchorfile>classTreeNode.html</anchorfile>
<anchor>a226518612d0d00b5988a2c44fc21d3f1</anchor>
<arglist>() const</arglist>
</member>
</compound>
<compound kind="page">
<name>md_README</name>
<title>DBC Parser and Runtime Decode Module Documentation</title>
<filename>md_README.html</filename>
</compound>
</tagfile>

10
docs/doxygen_warnings.log Normal file
View File

@@ -0,0 +1,10 @@
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/main.cpp:97: warning: Member main(int argc, char *argv[]) (function) of file main.cpp is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/decode_database.h:133: warning: Member frames (variable) of struct DecodeDatabase is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/decode_database.h:134: warning: Member frameIndexByKey (variable) of struct DecodeDatabase is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/decode_database.h:108: warning: Member FrameKey(std::uint32_t id, bool extended) (function) of struct FrameKey is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/decode_database.h:113: warning: Member operator==(const FrameKey &other) const (function) of struct FrameKey is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/decode_database.h:100: warning: Member canId (variable) of struct FrameKey is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/decode_database.h:101: warning: Member isExtended (variable) of struct FrameKey is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/decode_database.h:122: warning: Member operator()(const FrameKey &key) const (function) of struct FrameKeyHasher is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/tree_node.h:59: warning: Member TreeNode(TreeNode &&)=default (function) of class TreeNode is not documented.
/home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/tree_node.h:60: warning: Member operator=(TreeNode &&)=default (function) of class TreeNode is not documented.

56
docs/html/README_8md.html Normal file
View File

@@ -0,0 +1,56 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC framework: README.md File 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="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>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">README.md File Reference</div></div>
</div><!--header-->
<div class="contents">
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 14 2026 20:49:34 for DBC framework by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>

118
docs/html/annotated.html Normal file
View File

@@ -0,0 +1,118 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Class 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('annotated.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">Class List</div></div>
</div><!--header-->
<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="structDbcDatabase.html" target="_self">DbcDatabase</a></td><td class="desc">Parsed DBC content stored in a simple internal form </td></tr>
<tr id="row_1_"><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_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="classDbcDecoder.html" target="_self">DbcDecoder</a></td><td class="desc">Runtime CAN decoder using prebuilt decode database </td></tr>
<tr id="row_3_"><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_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="classDbcTreeBuilder.html" target="_self">DbcTreeBuilder</a></td><td class="desc">Builds a simple tree from parsed DBC database </td></tr>
<tr id="row_5_"><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="structDecodeDatabase.html" target="_self">DecodeDatabase</a></td><td class="desc">Runtime decode database with fast lookup by CAN ID </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="structDecodedFrameValue.html" target="_self">DecodedFrameValue</a></td><td class="desc">Fully decoded frame </td></tr>
<tr id="row_7_"><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_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="structDecodeFrame.html" target="_self">DecodeFrame</a></td><td class="desc">Runtime-ready frame definition </td></tr>
<tr id="row_9_"><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_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="structFrameInfo.html" target="_self">FrameInfo</a></td><td class="desc">Describes one CAN frame from a DBC file </td></tr>
<tr id="row_11_"><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">Key for fast frame lookup </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="structFrameKeyHasher.html" target="_self">FrameKeyHasher</a></td><td class="desc">Hasher for frame key </td></tr>
<tr id="row_13_"><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_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="structSignalInfo.html" target="_self">SignalInfo</a></td><td class="desc">Describes one signal inside a DBC frame </td></tr>
<tr id="row_15_"><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>
</table>
</div><!-- directory -->
</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,19 @@
var annotated_dup =
[
[ "DbcDatabase", "structDbcDatabase.html", "structDbcDatabase" ],
[ "DbcDecodeBuilder", "classDbcDecodeBuilder.html", "classDbcDecodeBuilder" ],
[ "DbcDecoder", "classDbcDecoder.html", "classDbcDecoder" ],
[ "DbcParser", "classDbcParser.html", "classDbcParser" ],
[ "DbcTreeBuilder", "classDbcTreeBuilder.html", "classDbcTreeBuilder" ],
[ "DecodeDatabase", "structDecodeDatabase.html", null ],
[ "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 ],
[ "RawCanFrame", "structRawCanFrame.html", "structRawCanFrame" ],
[ "SignalInfo", "structSignalInfo.html", "structSignalInfo" ],
[ "TreeNode", "classTreeNode.html", "classTreeNode" ]
];

BIN
docs/html/bc_s.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 676 B

BIN
docs/html/bdwn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 B

View File

@@ -0,0 +1,102 @@
<!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">
<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.4"/>
<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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classDbcDecodeBuilder.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">DbcDecodeBuilder Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">Build</a>(const DbcDatabase &amp;source) const</td><td class="entry"><a class="el" href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a></td><td class="entry"></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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,154 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: DbcDecodeBuilder 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classDbcDecodeBuilder.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classDbcDecodeBuilder-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">DbcDecodeBuilder Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Converts parsed DBC data into runtime decode database.
<a href="classDbcDecodeBuilder.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__decode__builder_8h_source.html">dbc_decode_builder.h</a>&gt;</code></p>
<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:a2bc6386dfb5e58976c42e22c19ec471b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structDecodeDatabase.html">DecodeDatabase</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">Build</a> (const <a class="el" href="structDbcDatabase.html">DbcDatabase</a> &amp;source) const</td></tr>
<tr class="memdesc:a2bc6386dfb5e58976c42e22c19ec471b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build runtime decode database. <a href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">More...</a><br /></td></tr>
<tr class="separator:a2bc6386dfb5e58976c42e22c19ec471b"><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 >Converts parsed DBC data into runtime decode database. </p>
<p class="definition">Definition at line <a class="el" href="dbc__decode__builder_8h_source.html#l00021">21</a> of file <a class="el" href="dbc__decode__builder_8h_source.html">dbc_decode_builder.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a2bc6386dfb5e58976c42e22c19ec471b" name="a2bc6386dfb5e58976c42e22c19ec471b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bc6386dfb5e58976c42e22c19ec471b">&#9670;&nbsp;</a></span>Build()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDecodeDatabase.html">DecodeDatabase</a> DbcDecodeBuilder::Build </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDbcDatabase.html">DbcDatabase</a> &amp;&#160;</td>
<td class="paramname"><em>source</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Build runtime decode database. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">source</td><td>Parsed DBC database. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Runtime-ready decode database. </dd></dl>
<p class="definition">Definition at line <a class="el" href="dbc__decode__builder_8cpp_source.html#l00014">14</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#l00043">DecodeSignal::byteOrder</a>, <a class="el" href="decode__database_8h_source.html#l00074">DecodeFrame::canId</a>, <a class="el" href="frame__info_8h_source.html#l00026">FrameInfo::canId</a>, <a class="el" href="decode__database_8h_source.html#l00080">DecodeFrame::comment</a>, <a class="el" href="frame__info_8h_source.html#l00032">FrameInfo::comment</a>, <a class="el" href="decode__database_8h_source.html#l00076">DecodeFrame::dlc</a>, <a class="el" href="frame__info_8h_source.html#l00030">FrameInfo::dlc</a>, <a class="el" href="dbc__database_8h_source.html#l00023">DbcDatabase::frames</a>, <a class="el" href="decode__database_8h_source.html#l00078">DecodeFrame::hasPgn</a>, <a class="el" href="frame__info_8h_source.html#l00029">FrameInfo::hasPgn</a>, <a class="el" href="decode__database_8h_source.html#l00075">DecodeFrame::isExtended</a>, <a class="el" href="frame__info_8h_source.html#l00027">FrameInfo::isExtended</a>, <a class="el" href="signal__info_8h_source.html#l00026">SignalInfo::isLittleEndian</a>, <a class="el" href="decode__database_8h_source.html#l00042">DecodeSignal::length</a>, <a class="el" href="signal__info_8h_source.html#l00025">SignalInfo::length</a>, <a class="el" href="decode__database_8h_source.html#l00040">DecodeSignal::name</a>, <a class="el" href="decode__database_8h_source.html#l00073">DecodeFrame::name</a>, <a class="el" href="frame__info_8h_source.html#l00025">FrameInfo::name</a>, <a class="el" href="signal__info_8h_source.html#l00023">SignalInfo::name</a>, <a class="el" href="decode__database_8h_source.html#l00077">DecodeFrame::pgn</a>, <a class="el" href="frame__info_8h_source.html#l00028">FrameInfo::pgn</a>, <a class="el" href="decode__database_8h_source.html#l00041">DecodeSignal::startBit</a>, <a class="el" href="signal__info_8h_source.html#l00024">SignalInfo::startBit</a>, <a class="el" href="decode__database_8h_source.html#l00079">DecodeFrame::transmitter</a>, and <a class="el" href="frame__info_8h_source.html#l00031">FrameInfo::transmitter</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="dbc__decode__builder_8h_source.html">dbc_decode_builder.h</a></li>
<li><a class="el" href="dbc__decode__builder_8cpp_source.html">dbc_decode_builder.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="classDbcDecodeBuilder.html">DbcDecodeBuilder</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var classDbcDecodeBuilder =
[
[ "Build", "classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b", null ]
];

View File

@@ -0,0 +1,103 @@
<!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">
<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.4"/>
<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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classDbcDecoder.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">DbcDecoder Member List</div></div>
</div><!--header-->
<div class="contents">
<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#ab2cfb2fb711c95d3a29365546b89f3da">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 -->
<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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,217 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: DbcDecoder 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classDbcDecoder.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classDbcDecoder-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">DbcDecoder Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Runtime CAN decoder using prebuilt decode database.
<a href="classDbcDecoder.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>&gt;</code></p>
<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:ab2cfb2fb711c95d3a29365546b89f3da"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structDecodeFrame.html">DecodeFrame</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">FindFrame</a> (const <a class="el" href="structDecodeDatabase.html">DecodeDatabase</a> &amp;database, std::uint32_t canId, bool isExtended) const</td></tr>
<tr class="memdesc:ab2cfb2fb711c95d3a29365546b89f3da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find frame definition by CAN ID. <a href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">More...</a><br /></td></tr>
<tr class="separator:ab2cfb2fb711c95d3a29365546b89f3da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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="structDecodeDatabase.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. <a href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">More...</a><br /></td></tr>
<tr class="separator:a345951ffe5d943a70d3a1ea1f39e74f7"><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#l00070">70</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="ab2cfb2fb711c95d3a29365546b89f3da" name="ab2cfb2fb711c95d3a29365546b89f3da"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2cfb2fb711c95d3a29365546b89f3da">&#9670;&nbsp;</a></span>FindFrame()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structDecodeFrame.html">DecodeFrame</a> * DbcDecoder::FindFrame </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDecodeDatabase.html">DecodeDatabase</a> &amp;&#160;</td>
<td class="paramname"><em>database</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::uint32_t&#160;</td>
<td class="paramname"><em>canId</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool&#160;</td>
<td class="paramname"><em>isExtended</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Find frame definition by CAN ID. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">database</td><td>Runtime decode database. </td></tr>
<tr><td class="paramname">canId</td><td>Normalized CAN ID. </td></tr>
<tr><td class="paramname">isExtended</td><td>true for extended frame. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointer to frame definition or nullptr. </dd></dl>
<p class="definition">Definition at line <a class="el" href="dbc__decoder_8cpp_source.html#l00014">14</a> of file <a class="el" href="dbc__decoder_8cpp_source.html">dbc_decoder.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__decoder_8cpp_source.html#l00031">Decode()</a>.</p>
</div>
</div>
<a id="a345951ffe5d943a70d3a1ea1f39e74f7" name="a345951ffe5d943a70d3a1ea1f39e74f7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a345951ffe5d943a70d3a1ea1f39e74f7">&#9670;&nbsp;</a></span>Decode()</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="structDecodeDatabase.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>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Decode one raw CAN frame. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">database</td><td>Runtime decode database. </td></tr>
<tr><td class="paramname">frame</td><td>Raw CAN frame. </td></tr>
</table>
</dd>
</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#l00031">31</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#l00024">RawCanFrame::canId</a>, <a class="el" href="dbc__decoder_8h_source.html#l00026">RawCanFrame::data</a>, <a class="el" href="dbc__decoder_8h_source.html#l00039">DecodedSignalValue::definition</a>, <a class="el" href="dbc__decoder_8h_source.html#l00056">DecodedFrameValue::definition</a>, <a class="el" href="dbc__decoder_8cpp_source.html#l00014">FindFrame()</a>, <a class="el" href="dbc__decoder_8h_source.html#l00025">RawCanFrame::isExtended</a>, <a class="el" href="dbc__decoder_8h_source.html#l00042">DecodedSignalValue::valid</a>, <a class="el" href="dbc__decoder_8h_source.html#l00058">DecodedFrameValue::valid</a>, and <a class="el" href="decode__database_8h_source.html#l00044">DecodeSignal::valueType</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a></li>
<li><a class="el" href="dbc__decoder_8cpp_source.html">dbc_decoder.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="classDbcDecoder.html">DbcDecoder</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,5 @@
var classDbcDecoder =
[
[ "FindFrame", "classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da", null ],
[ "Decode", "classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7", null ]
];

View File

@@ -0,0 +1,102 @@
<!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">
<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.4"/>
<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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classDbcParser.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">DbcParser Member List</div></div>
</div><!--header-->
<div class="contents">
<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>
</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,171 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: DbcParser 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classDbcParser.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classDbcParser-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">DbcParser Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Minimal DBC parser.
<a href="classDbcParser.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__parser_8h_source.html">dbc_parser.h</a>&gt;</code></p>
<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: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. <a href="classDbcParser.html#aef72826942c9095d653fafa435855e56">More...</a><br /></td></tr>
<tr class="separator:aef72826942c9095d653fafa435855e56"><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 >Minimal DBC parser. </p>
<p >Supports:</p><ul>
<li>BO_</li>
<li>SG_</li>
<li>CM_ BO_</li>
<li>CM_ SG_</li>
</ul>
<p >Ignores:</p><ul>
<li>attributes</li>
<li>multiplexing</li>
<li>value tables </li>
</ul>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8h_source.html#l00035">35</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>
<a id="aef72826942c9095d653fafa435855e56" name="aef72826942c9095d653fafa435855e56"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef72826942c9095d653fafa435855e56">&#9670;&nbsp;</a></span>ParseFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="structDbcDatabase.html">DbcDatabase</a> DbcParser::ParseFile </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>filePath</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Parse DBC file. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">filePath</td><td>Path to input file. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Parsed database. </dd></dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">std::runtime_error</td><td>on file or parse errors. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8cpp_source.html#l00040">40</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__database_8h_source.html#l00023">DbcDatabase::frames</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="dbc__parser_8h_source.html">dbc_parser.h</a></li>
<li><a class="el" href="dbc__parser_8cpp_source.html">dbc_parser.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="classDbcParser.html">DbcParser</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var classDbcParser =
[
[ "ParseFile", "classDbcParser.html#aef72826942c9095d653fafa435855e56", null ]
];

View File

@@ -0,0 +1,102 @@
<!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">
<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.4"/>
<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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classDbcTreeBuilder.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">DbcTreeBuilder Member List</div></div>
</div><!--header-->
<div class="contents">
<p>This is the complete list of members for <a class="el" href="classDbcTreeBuilder.html">DbcTreeBuilder</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">Build</a>(const DbcDatabase &amp;database) const</td><td class="entry"><a class="el" href="classDbcTreeBuilder.html">DbcTreeBuilder</a></td><td class="entry"></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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,154 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: DbcTreeBuilder 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classDbcTreeBuilder.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classDbcTreeBuilder-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">DbcTreeBuilder Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Builds a simple tree from parsed DBC database.
<a href="classDbcTreeBuilder.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="dbc__tree__builder_8h_source.html">dbc_tree_builder.h</a>&gt;</code></p>
<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:a7e57d067d831b14b383947fd125edd4b"><td class="memItemLeft" align="right" valign="top">std::unique_ptr&lt; <a class="el" href="classTreeNode.html">TreeNode</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">Build</a> (const <a class="el" href="structDbcDatabase.html">DbcDatabase</a> &amp;database) const</td></tr>
<tr class="memdesc:a7e57d067d831b14b383947fd125edd4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Build tree representation of parsed DBC data. <a href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">More...</a><br /></td></tr>
<tr class="separator:a7e57d067d831b14b383947fd125edd4b"><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 >Builds a simple tree from parsed DBC database. </p>
<p class="definition">Definition at line <a class="el" href="dbc__tree__builder_8h_source.html#l00023">23</a> of file <a class="el" href="dbc__tree__builder_8h_source.html">dbc_tree_builder.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a7e57d067d831b14b383947fd125edd4b" name="a7e57d067d831b14b383947fd125edd4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e57d067d831b14b383947fd125edd4b">&#9670;&nbsp;</a></span>Build()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::unique_ptr&lt; <a class="el" href="classTreeNode.html">TreeNode</a> &gt; DbcTreeBuilder::Build </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structDbcDatabase.html">DbcDatabase</a> &amp;&#160;</td>
<td class="paramname"><em>database</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Build tree representation of parsed DBC data. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">database</td><td>Parsed database. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Root node of the tree. </dd></dl>
<p class="definition">Definition at line <a class="el" href="dbc__tree__builder_8cpp_source.html#l00014">14</a> of file <a class="el" href="dbc__tree__builder_8cpp_source.html">dbc_tree_builder.cpp</a>.</p>
<p class="reference">References <a class="el" href="dbc__database_8h_source.html#l00023">DbcDatabase::frames</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="dbc__tree__builder_8h_source.html">dbc_tree_builder.h</a></li>
<li><a class="el" href="dbc__tree__builder_8cpp_source.html">dbc_tree_builder.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="classDbcTreeBuilder.html">DbcTreeBuilder</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var classDbcTreeBuilder =
[
[ "Build", "classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b", null ]
];

View File

@@ -0,0 +1,117 @@
<!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">
<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.4"/>
<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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classTreeNode.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">TreeNode Member List</div></div>
</div><!--header-->
<div class="contents">
<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="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#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#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;)=default (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 class="even"><td class="entry"><a class="el" href="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d">TreeNode</a>()</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#a8e38dd591d8801d7ee3a7dbad90c67fc">TreeNode</a>(const FrameInfo &amp;frame)</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae">TreeNode</a>(const SignalInfo &amp;signal)</td><td class="entry"><a class="el" href="classTreeNode.html">TreeNode</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
<tr bgcolor="#f0f0f0" class="odd"><td class="entry"><b>TreeNode</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="even"><td class="entry"><b>TreeNode</b>(TreeNode &amp;&amp;)=default (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>~TreeNode</b>()=default (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>
</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,455 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: TreeNode 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classTreeNode.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classTreeNode-members.html">List of all members</a> </div>
<div class="headertitle"><div class="title">TreeNode Class Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Tree node for later use in model/view or other hierarchy consumers.
<a href="classTreeNode.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="tree__node_8h_source.html">tree_node.h</a>&gt;</code></p>
<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:a984a98d5ccf7ef1f5a18094c6821f35d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d">TreeNode</a> ()</td></tr>
<tr class="memdesc:a984a98d5ccf7ef1f5a18094c6821f35d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create root node. <a href="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d">More...</a><br /></td></tr>
<tr class="separator:a984a98d5ccf7ef1f5a18094c6821f35d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8e38dd591d8801d7ee3a7dbad90c67fc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc">TreeNode</a> (const <a class="el" href="structFrameInfo.html">FrameInfo</a> &amp;frame)</td></tr>
<tr class="memdesc:a8e38dd591d8801d7ee3a7dbad90c67fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create frame node. <a href="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc">More...</a><br /></td></tr>
<tr class="separator:a8e38dd591d8801d7ee3a7dbad90c67fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9f00f5253d56461bb2d420fd639c5ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae">TreeNode</a> (const <a class="el" href="structSignalInfo.html">SignalInfo</a> &amp;signal)</td></tr>
<tr class="memdesc:ab9f00f5253d56461bb2d420fd639c5ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create signal node. <a href="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae">More...</a><br /></td></tr>
<tr class="separator:ab9f00f5253d56461bb2d420fd639c5ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d3054a033accf3e38ea132002fc35ff"><td class="memItemLeft" align="right" valign="top"><a id="a4d3054a033accf3e38ea132002fc35ff" name="a4d3054a033accf3e38ea132002fc35ff"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>TreeNode</b> (const <a class="el" href="classTreeNode.html">TreeNode</a> &amp;)=delete</td></tr>
<tr class="separator:a4d3054a033accf3e38ea132002fc35ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6ce97dcf532b452d520452b6d000daa"><td class="memItemLeft" align="right" valign="top"><a id="ad6ce97dcf532b452d520452b6d000daa" name="ad6ce97dcf532b452d520452b6d000daa"></a>
<a class="el" href="classTreeNode.html">TreeNode</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classTreeNode.html">TreeNode</a> &amp;)=delete</td></tr>
<tr class="separator:ad6ce97dcf532b452d520452b6d000daa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a35724af755b5d0c43de40a723ef81ec1"><td class="memItemLeft" align="right" valign="top"><a id="a35724af755b5d0c43de40a723ef81ec1" name="a35724af755b5d0c43de40a723ef81ec1"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>TreeNode</b> (<a class="el" href="classTreeNode.html">TreeNode</a> &amp;&amp;)=default</td></tr>
<tr class="separator:a35724af755b5d0c43de40a723ef81ec1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88fbcbec9c64d888b19c5edb95059a95"><td class="memItemLeft" align="right" valign="top"><a id="a88fbcbec9c64d888b19c5edb95059a95" name="a88fbcbec9c64d888b19c5edb95059a95"></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;)=default</td></tr>
<tr class="separator:a88fbcbec9c64d888b19c5edb95059a95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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. <a href="classTreeNode.html#a6161f2ebb92184eab4215d121870e788">More...</a><br /></td></tr>
<tr class="separator:a6161f2ebb92184eab4215d121870e788"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem: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. <a href="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea">More...</a><br /></td></tr>
<tr class="separator:abdd82460187dca8d3e5d66f5d5c529ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4727ff801a2d1b9323c5ae50a35457a6"><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#a4727ff801a2d1b9323c5ae50a35457a6">GetChild</a> (std::size_t index) const</td></tr>
<tr class="memdesc:a4727ff801a2d1b9323c5ae50a35457a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get child by index. <a href="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6">More...</a><br /></td></tr>
<tr class="separator:a4727ff801a2d1b9323c5ae50a35457a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81047bd7d2a4cc96b9ef5e20d0d63b5f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classTreeNode.html">TreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f">GetChild</a> (std::size_t index)</td></tr>
<tr class="memdesc:a81047bd7d2a4cc96b9ef5e20d0d63b5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get mutable child by index. <a href="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f">More...</a><br /></td></tr>
<tr class="separator:a81047bd7d2a4cc96b9ef5e20d0d63b5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa2f4b0aafa12d3d41ed00df8e0250c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16">NodeType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9">GetType</a> () const</td></tr>
<tr class="memdesc:afa2f4b0aafa12d3d41ed00df8e0250c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get node type. <a href="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9">More...</a><br /></td></tr>
<tr class="separator:afa2f4b0aafa12d3d41ed00df8e0250c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaac5b8d9dc9e5ae1f367d1adbcf20e18"><td class="memItemLeft" align="right" valign="top">const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">GetName</a> () const</td></tr>
<tr class="memdesc:aaac5b8d9dc9e5ae1f367d1adbcf20e18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get display name. <a href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">More...</a><br /></td></tr>
<tr class="separator:aaac5b8d9dc9e5ae1f367d1adbcf20e18"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc503b40004764163605d6dbdb4ef811"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structFrameInfo.html">FrameInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#afc503b40004764163605d6dbdb4ef811">GetFrame</a> () const</td></tr>
<tr class="memdesc:afc503b40004764163605d6dbdb4ef811"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get frame payload if node is frame. <a href="classTreeNode.html#afc503b40004764163605d6dbdb4ef811">More...</a><br /></td></tr>
<tr class="separator:afc503b40004764163605d6dbdb4ef811"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a226518612d0d00b5988a2c44fc21d3f1"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structSignalInfo.html">SignalInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1">GetSignal</a> () const</td></tr>
<tr class="memdesc:a226518612d0d00b5988a2c44fc21d3f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get signal payload if node is signal. <a href="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1">More...</a><br /></td></tr>
<tr class="separator:a226518612d0d00b5988a2c44fc21d3f1"><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 >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>
</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;&nbsp;</a></span>TreeNode() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TreeNode::TreeNode </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<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>
</div>
</div>
<a id="a8e38dd591d8801d7ee3a7dbad90c67fc" name="a8e38dd591d8801d7ee3a7dbad90c67fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8e38dd591d8801d7ee3a7dbad90c67fc">&#9670;&nbsp;</a></span>TreeNode() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">TreeNode::TreeNode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structFrameInfo.html">FrameInfo</a> &amp;&#160;</td>
<td class="paramname"><em>frame</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create frame node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">frame</td><td>Frame payload. </td></tr>
</table>
</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>
</div>
</div>
<a id="ab9f00f5253d56461bb2d420fd639c5ae" name="ab9f00f5253d56461bb2d420fd639c5ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9f00f5253d56461bb2d420fd639c5ae">&#9670;&nbsp;</a></span>TreeNode() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">TreeNode::TreeNode </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="structSignalInfo.html">SignalInfo</a> &amp;&#160;</td>
<td class="paramname"><em>signal</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">explicit</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Create signal node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">signal</td><td>Signal payload. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="tree__node_8cpp_source.html#l00030">30</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;&nbsp;</a></span>AddChild()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<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="paramname"><em>child</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<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>
</table>
</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>
</div>
</div>
<a id="abdd82460187dca8d3e5d66f5d5c529ea" name="abdd82460187dca8d3e5d66f5d5c529ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abdd82460187dca8d3e5d66f5d5c529ea">&#9670;&nbsp;</a></span>GetChildCount()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::size_t TreeNode::GetChildCount </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<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#l00043">43</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
<a id="a4727ff801a2d1b9323c5ae50a35457a6" name="a4727ff801a2d1b9323c5ae50a35457a6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4727ff801a2d1b9323c5ae50a35457a6">&#9670;&nbsp;</a></span>GetChild() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classTreeNode.html">TreeNode</a> * TreeNode::GetChild </td>
<td>(</td>
<td class="paramtype">std::size_t&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<p>Get child by index. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td>Child index. </td></tr>
</table>
</dd>
</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#l00047">47</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
<a id="a81047bd7d2a4cc96b9ef5e20d0d63b5f" name="a81047bd7d2a4cc96b9ef5e20d0d63b5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a81047bd7d2a4cc96b9ef5e20d0d63b5f">&#9670;&nbsp;</a></span>GetChild() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classTreeNode.html">TreeNode</a> * TreeNode::GetChild </td>
<td>(</td>
<td class="paramtype">std::size_t&#160;</td>
<td class="paramname"><em>index</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get mutable child by index. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">index</td><td>Child index. </td></tr>
</table>
</dd>
</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#l00054">54</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
<a id="afa2f4b0aafa12d3d41ed00df8e0250c9" name="afa2f4b0aafa12d3d41ed00df8e0250c9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa2f4b0aafa12d3d41ed00df8e0250c9">&#9670;&nbsp;</a></span>GetType()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16">NodeType</a> TreeNode::GetType </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<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#l00061">61</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
<a id="aaac5b8d9dc9e5ae1f367d1adbcf20e18" name="aaac5b8d9dc9e5ae1f367d1adbcf20e18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaac5b8d9dc9e5ae1f367d1adbcf20e18">&#9670;&nbsp;</a></span>GetName()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const std::string &amp; TreeNode::GetName </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<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#l00065">65</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
<a id="afc503b40004764163605d6dbdb4ef811" name="afc503b40004764163605d6dbdb4ef811"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc503b40004764163605d6dbdb4ef811">&#9670;&nbsp;</a></span>GetFrame()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structFrameInfo.html">FrameInfo</a> * TreeNode::GetFrame </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<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#l00069">69</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
<a id="a226518612d0d00b5988a2c44fc21d3f1" name="a226518612d0d00b5988a2c44fc21d3f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a226518612d0d00b5988a2c44fc21d3f1">&#9670;&nbsp;</a></span>GetSignal()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="structSignalInfo.html">SignalInfo</a> * TreeNode::GetSignal </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</div><div class="memdoc">
<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#l00073">73</a> of file <a class="el" href="tree__node_8cpp_source.html">tree_node.cpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="tree__node_8h_source.html">tree_node.h</a></li>
<li><a class="el" href="tree__node_8cpp_source.html">tree_node.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="classTreeNode.html">TreeNode</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,14 @@
var classTreeNode =
[
[ "TreeNode", "classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d", null ],
[ "TreeNode", "classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc", null ],
[ "TreeNode", "classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae", null ],
[ "AddChild", "classTreeNode.html#a6161f2ebb92184eab4215d121870e788", null ],
[ "GetChildCount", "classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea", null ],
[ "GetChild", "classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6", null ],
[ "GetChild", "classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f", null ],
[ "GetType", "classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9", null ],
[ "GetName", "classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18", null ],
[ "GetFrame", "classTreeNode.html#afc503b40004764163605d6dbdb4ef811", null ],
[ "GetSignal", "classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1", null ]
];

116
docs/html/classes.html Normal file
View File

@@ -0,0 +1,116 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Class Index</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('classes.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<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_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="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="classDbcParser.html">DbcParser</a></dd><dd><a class="el" href="classDbcTreeBuilder.html">DbcTreeBuilder</a></dd><dd><a class="el" href="structDecodeDatabase.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 odd">
<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">
<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">
<dt class="alphachar"><a id="letter_S" name="letter_S">S</a></dt>
<dd><a class="el" href="structSignalInfo.html">SignalInfo</a></dd></dl>
<dl class="classindex even">
<dt class="alphachar"><a id="letter_T" name="letter_T">T</a></dt>
<dd><a class="el" href="classTreeNode.html">TreeNode</a></dd></dl>
</div>
</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.4 </li>
</ul>
</div>
</body>
</html>

BIN
docs/html/closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 B

BIN
docs/html/dbc.qch Normal file

Binary file not shown.

View File

@@ -0,0 +1,120 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_database.h File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__database_8h.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle"><div class="title">dbc_database.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<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 />
</div>
<p><a href="dbc__database_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDbcDatabase.html">DbcDatabase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parsed DBC content stored in a simple internal form. <a href="structDbcDatabase.html#details">More...</a><br /></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>
<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>
</div></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="dbc__database_8h.html">dbc_database.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var dbc__database_8h =
[
[ "DbcDatabase", "structDbcDatabase.html", "structDbcDatabase" ]
];

View File

@@ -0,0 +1,115 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_database.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__database_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_database.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dbc__database_8h.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">#ifndef DBC_DATABASE_H</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define DBC_DATABASE_H</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="frame__info_8h.html">frame_info.h</a>&quot;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<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="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="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><!-- 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="dbc__database_8h.html">dbc_database.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_decode_builder.cpp File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__decode__builder_8cpp.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_decode_builder.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<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 />
</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>
<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>
</div></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="dbc__decode__builder_8cpp.html">dbc_decode_builder.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,195 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_decode_builder.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__decode__builder_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_decode_builder.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="dbc__decode__builder_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__decode__builder_8h.html">dbc_decode_builder.h</a>&quot;</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"><a class="line" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b"> 14</a></span><a class="code hl_struct" href="structDecodeDatabase.html">DecodeDatabase</a> <a class="code hl_function" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">DbcDecodeBuilder::Build</a> (<span class="keyword">const</span> <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;source)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> <a class="code hl_struct" href="structDecodeDatabase.html">DecodeDatabase</a> result;</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">for</span> (std::size_t frameIndex = 0U; frameIndex &lt; source.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>.size(); ++frameIndex) {</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</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>[frameIndex];</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> targetFrame;</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">name</a> = sourceFrame.<a class="code hl_variable" href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">name</a>;</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">canId</a> = sourceFrame.<a class="code hl_variable" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">canId</a>;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">isExtended</a> = sourceFrame.<a class="code hl_variable" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">isExtended</a>;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">dlc</a> = sourceFrame.<a class="code hl_variable" href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">dlc</a>;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">pgn</a> = sourceFrame.<a class="code hl_variable" href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">pgn</a>;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">hasPgn</a> = sourceFrame.<a class="code hl_variable" href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">hasPgn</a>;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">transmitter</a> = sourceFrame.<a class="code hl_variable" href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">transmitter</a>;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">comment</a> = sourceFrame.<a class="code hl_variable" href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">comment</a>;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">for</span> (std::size_t signalIndex = 0U; signalIndex &lt; sourceFrame.signals.size(); ++signalIndex) {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">const</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> &amp;sourceSignal = sourceFrame.signals[signalIndex];</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> targetSignal;</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> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#a379e422a00cad56f896cacf60455b088">name</a>;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#ace290724f9801521609aedaa946d61f1">startBit</a>;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa">length</a>;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c">isLittleEndian</a> ? ByteOrder::Intel : ByteOrder::Motorola;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f">isSigned</a> ? ValueType::Signed : ValueType::Unsigned;</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">factor</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499">factor</a>;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">offset</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e">offset</a>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">minimum</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b">minimum</a>;</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">maximum</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52">maximum</a>;</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">unit</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01">unit</a>;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">receivers</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3">receivers</a>;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> targetSignal.<a class="code hl_variable" href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">comment</a> = sourceSignal.<a class="code hl_variable" href="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5">comment</a>;</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> targetFrame.signals.push_back (targetSignal);</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> result.frames.push_back (targetFrame);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> result.frameIndexByKey[<a class="code hl_struct" href="structFrameKey.html">FrameKey</a> (targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">canId</a>, targetFrame.<a class="code hl_variable" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">isExtended</a>)] =</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> result.frames.size() - 1U;</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> </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="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#l00014">dbc_decode_builder.cpp:14</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="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="astructDecodeDatabase_html"><div class="ttname"><a href="structDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Runtime decode database with fast lookup by CAN ID.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00132">decode_database.h:132</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#l00072">decode_database.h:72</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#l00077">decode_database.h:77</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#l00078">decode_database.h:78</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#l00080">decode_database.h:80</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#l00075">decode_database.h:75</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#l00076">decode_database.h:76</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#l00074">decode_database.h:74</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#l00073">decode_database.h:73</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#l00079">decode_database.h:79</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#l00039">decode_database.h:39</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#l00047">decode_database.h:47</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#l00049">decode_database.h:49</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#l00045">decode_database.h:45</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#l00048">decode_database.h:48</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#l00040">decode_database.h:40</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#l00046">decode_database.h:46</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#l00044">decode_database.h:44</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#l00041">decode_database.h:41</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#l00050">decode_database.h:50</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#l00043">decode_database.h:43</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#l00042">decode_database.h:42</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#l00051">decode_database.h:51</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="astructFrameInfo_html_a34b726afaad2ac5c697fdb2ac070cdaf"><div class="ttname"><a href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">FrameInfo::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00027">frame_info.h:27</a></div></div>
<div class="ttc" id="astructFrameInfo_html_a4737a5420213ad4304724e39f3a4e55d"><div class="ttname"><a href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">FrameInfo::hasPgn</a></div><div class="ttdeci">bool hasPgn</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00029">frame_info.h:29</a></div></div>
<div class="ttc" id="astructFrameInfo_html_a92749ec3798d4211a505860fb389a9e8"><div class="ttname"><a href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">FrameInfo::transmitter</a></div><div class="ttdeci">std::string transmitter</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00031">frame_info.h:31</a></div></div>
<div class="ttc" id="astructFrameInfo_html_aa2b198ea0f55e560c123d35e7b3ecab9"><div class="ttname"><a href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">FrameInfo::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00030">frame_info.h:30</a></div></div>
<div class="ttc" id="astructFrameInfo_html_abb53a7f93ed7abc0ea1ae4a8ccafcdcb"><div class="ttname"><a href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">FrameInfo::name</a></div><div class="ttdeci">std::string name</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="astructFrameInfo_html_ace75121294f9d89b762080ab5643293c"><div class="ttname"><a href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">FrameInfo::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00032">frame_info.h:32</a></div></div>
<div class="ttc" id="astructFrameInfo_html_aee518b33f1000bf0b7f6e4a87474c943"><div class="ttname"><a href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">FrameInfo::pgn</a></div><div class="ttdeci">std::uint32_t pgn</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00028">frame_info.h:28</a></div></div>
<div class="ttc" id="astructFrameInfo_html_af470b0742c05bfbffc31c51a68f5c05e"><div class="ttname"><a href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">FrameInfo::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00026">frame_info.h:26</a></div></div>
<div class="ttc" id="astructFrameKey_html"><div class="ttname"><a href="structFrameKey.html">FrameKey</a></div><div class="ttdoc">Key for fast frame lookup.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00099">decode_database.h:99</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#l00022">signal_info.h:22</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a1008b5201f71848177217bd52fb84baa"><div class="ttname"><a href="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa">SignalInfo::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00025">signal_info.h:25</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a1f214f03e94ef5794de2d3367bfcbd01"><div class="ttname"><a href="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01">SignalInfo::unit</a></div><div class="ttdeci">std::string unit</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00032">signal_info.h:32</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a2c95562fd0b29327a7fd7b1e6feee7f3"><div class="ttname"><a href="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3">SignalInfo::receivers</a></div><div class="ttdeci">std::vector&lt; std::string &gt; receivers</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00033">signal_info.h:33</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a379e422a00cad56f896cacf60455b088"><div class="ttname"><a href="structSignalInfo.html#a379e422a00cad56f896cacf60455b088">SignalInfo::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00023">signal_info.h:23</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a52a52b320eef92fbcb4626307f9a498f"><div class="ttname"><a href="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f">SignalInfo::isSigned</a></div><div class="ttdeci">bool isSigned</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00027">signal_info.h:27</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ab7d0769f47aa540656b22e4e49db517e"><div class="ttname"><a href="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e">SignalInfo::offset</a></div><div class="ttdeci">double offset</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00029">signal_info.h:29</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ac99ba7563a5dad01e39c4257216953f5"><div class="ttname"><a href="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5">SignalInfo::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00034">signal_info.h:34</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ace290724f9801521609aedaa946d61f1"><div class="ttname"><a href="structSignalInfo.html#ace290724f9801521609aedaa946d61f1">SignalInfo::startBit</a></div><div class="ttdeci">std::uint32_t startBit</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="astructSignalInfo_html_ada7bf94fbeaa26bd08c73982b5af255b"><div class="ttname"><a href="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b">SignalInfo::minimum</a></div><div class="ttdeci">double minimum</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00030">signal_info.h:30</a></div></div>
<div class="ttc" id="astructSignalInfo_html_adf1c4331b9eabced0d7fdda40ff0eb52"><div class="ttname"><a href="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52">SignalInfo::maximum</a></div><div class="ttdeci">double maximum</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00031">signal_info.h:31</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ae4f78d99a2750aa564d7eba860171499"><div class="ttname"><a href="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499">SignalInfo::factor</a></div><div class="ttdeci">double factor</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00028">signal_info.h:28</a></div></div>
<div class="ttc" id="astructSignalInfo_html_af363b1563fb4c7cc8973f9a80c06846c"><div class="ttname"><a href="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c">SignalInfo::isLittleEndian</a></div><div class="ttdeci">bool isLittleEndian</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00026">signal_info.h:26</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="dbc__decode__builder_8cpp.html">dbc_decode_builder.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,120 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_decode_builder.h File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__decode__builder_8h.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle"><div class="title">dbc_decode_builder.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<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 />
</div>
<p><a href="dbc__decode__builder_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Converts parsed DBC data into runtime decode database. <a href="classDbcDecodeBuilder.html#details">More...</a><br /></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>
<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>
</div></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="dbc__decode__builder_8h.html">dbc_decode_builder.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var dbc__decode__builder_8h =
[
[ "DbcDecodeBuilder", "classDbcDecodeBuilder.html", "classDbcDecodeBuilder" ]
];

View File

@@ -0,0 +1,118 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_decode_builder.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__decode__builder_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_decode_builder.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dbc__decode__builder_8h.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">#ifndef DBC_DECODE_BUILDER_H</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define DBC_DECODE_BUILDER_H</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &quot;<a class="code" href="dbc__database_8h.html">dbc_database.h</a>&quot;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="decode__database_8h.html">decode_database.h</a>&quot;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"><a class="line" href="classDbcDecodeBuilder.html"> 21</a></span><span class="keyword">class </span><a class="code hl_class" href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a> {</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_struct" href="structDecodeDatabase.html">DecodeDatabase</a> <a class="code hl_function" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">Build</a> (<span class="keyword">const</span> <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;source) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</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="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#l00014">dbc_decode_builder.cpp:14</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="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="astructDecodeDatabase_html"><div class="ttname"><a href="structDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Runtime decode database with fast lookup by CAN ID.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00132">decode_database.h:132</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="dbc__decode__builder_8h.html">dbc_decode_builder.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_decoder.cpp File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__decoder_8cpp.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_decoder.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<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 />
</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>
<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>
</div></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="dbc__decoder_8cpp.html">dbc_decoder.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,271 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_decoder.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__decoder_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_decoder.cpp</div></div>
</div><!--header-->
<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> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"><a class="line" href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da"> 14</a></span><span class="keyword">const</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> *<a class="code hl_function" href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">DbcDecoder::FindFrame</a> (<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> std::uint32_t canId,</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> <span class="keywordtype">bool</span> isExtended)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keyword">const</span> <a class="code hl_struct" href="structFrameKey.html">FrameKey</a> key (canId, isExtended);</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">const</span> std::unordered_map&lt;FrameKey, std::size_t, FrameKeyHasher&gt;::const_iterator it =</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> database.frameIndexByKey.find (key);</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">if</span> (it == database.frameIndexByKey.end())</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">const</span> std::size_t index = it-&gt;second;</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">if</span> (index &gt;= database.frames.size())</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="keywordflow">return</span> &amp;database.frames[index];</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</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"><a class="line" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"> 31</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_struct" href="structDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</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="l00033" name="l00033"></a><span class="lineno"> 33</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> result;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> *definition = <a class="code hl_function" href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">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="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">if</span> (definition == <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">definition</a> = definition;</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> result.<a class="code hl_variable" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">valid</a> = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">for</span> (std::size_t signalIndex = 0U; signalIndex &lt; definition-&gt;signals.size(); ++signalIndex) {</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal = definition-&gt;signals[signalIndex];</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> decoded;</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> std::uint64_t unsignedValue = 0U;</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> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">definition</a> = &amp;signal;</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> <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="l00050" name="l00050"></a><span class="lineno"> 50</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> result.signals.push_back (decoded);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">continue</span>;</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> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</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="l00056" name="l00056"></a><span class="lineno"> 56</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">rawValue</a> = SignExtend (unsignedValue, signal.<a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">rawValue</a> = <span class="keyword">static_cast&lt;</span>std::int64_t<span class="keyword">&gt;</span> (unsignedValue);</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> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a> =</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> (<span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span> (decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">rawValue</a>) * 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="l00062" name="l00062"></a><span class="lineno"> 62</span> decoded.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> = <span class="keyword">true</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> result.signals.push_back (decoded);</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> </div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="keywordflow">return</span> result;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span>}</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</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="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</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="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">return</span> <span class="keyword">false</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> (signal.<a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> == ByteOrder::Intel)</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</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="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="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="l00080" name="l00080"></a><span class="lineno"> 80</span>}</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</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="l00083" name="l00083"></a><span class="lineno"> 83</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> std::uint32_t length,</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> value = 0U;</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordflow">for</span> (std::uint32_t bitIndex = 0U; bitIndex &lt; length; ++bitIndex) {</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">const</span> std::uint32_t absoluteBit = startBit + bitIndex;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keyword">const</span> std::uint32_t byteIndex = absoluteBit / 8U;</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> <span class="keyword">const</span> std::uint32_t bitInByte = absoluteBit % 8U;</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> (byteIndex &gt;= data.size())</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keyword">const</span> std::uint64_t bitValue =</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</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="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> value |= bitValue;</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> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span>}</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="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="l00106" name="l00106"></a><span class="lineno"> 106</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> std::uint32_t length,</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> std::uint64_t &amp;value) {</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> * DBC Motorola bit numbering:</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> * - startBit points to the most significant bit of the signal</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"> * - inside a byte, bit numbering goes 7..0</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> * - crossing byte boundary moves to the next byte, bit 7</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> */</span></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> value = 0U;</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> std::int32_t currentBit = <span class="keyword">static_cast&lt;</span>std::int32_t<span class="keyword">&gt;</span> (startBit);</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="keywordflow">for</span> (std::uint32_t bitIndex = 0U; bitIndex &lt; length; ++bitIndex) {</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">if</span> (currentBit &lt; 0)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">const</span> std::uint32_t absoluteBit = <span class="keyword">static_cast&lt;</span>std::uint32_t<span class="keyword">&gt;</span> (currentBit);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">const</span> std::uint32_t byteIndex = absoluteBit / 8U;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keyword">const</span> std::uint32_t bitFromMsb = absoluteBit % 8U;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="keyword">const</span> std::uint32_t bitInByte = 7U - bitFromMsb;</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="keywordflow">if</span> (byteIndex &gt;= data.size())</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</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> value &lt;&lt;= 1U;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</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="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> ((absoluteBit % 8U) == 7U)</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> currentBit = <span class="keyword">static_cast&lt;</span>std::int32_t<span class="keyword">&gt;</span> ((byteIndex + 1U) * 8U);</div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> --currentBit;</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> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span>}</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>std::int64_t DbcDecoder::SignExtend (std::uint64_t value, std::uint32_t bitLength) {</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> <span class="keywordflow">if</span> ((bitLength == 0U) || (bitLength &gt;= 64U))</div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</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="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">const</span> std::uint64_t signMask = (<span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span> (1U) &lt;&lt; (bitLength - 1U));</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> <span class="keyword">const</span> std::uint64_t valueMask = (<span class="keyword">static_cast&lt;</span>std::uint64_t<span class="keyword">&gt;</span> (1U) &lt;&lt; bitLength) - 1U;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> </div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> value &amp;= valueMask;</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="keywordflow">if</span> ((value &amp; signMask) == 0U)</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</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="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">return</span> <span class="keyword">static_cast&lt;</span>std::int64_t<span class="keyword">&gt;</span> (value | (~valueMask));</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</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#l00031">dbc_decoder.cpp:31</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_ab2cfb2fb711c95d3a29365546b89f3da"><div class="ttname"><a href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">DbcDecoder::FindFrame</a></div><div class="ttdeci">const DecodeFrame * 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#l00014">dbc_decoder.cpp:14</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="astructDecodeDatabase_html"><div class="ttname"><a href="structDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Runtime decode database with fast lookup by CAN ID.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00132">decode_database.h:132</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#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#l00039">decode_database.h:39</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#l00045">decode_database.h:45</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#l00046">decode_database.h:46</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#l00044">decode_database.h:44</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#l00041">decode_database.h:41</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#l00043">decode_database.h:43</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#l00042">decode_database.h:42</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#l00055">dbc_decoder.h:55</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#l00058">dbc_decoder.h:58</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a60dda1cc352d2c8087f0bdbc81dd266c"><div class="ttname"><a href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">DecodedFrameValue::definition</a></div><div class="ttdeci">const DecodeFrame * definition</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"><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#l00038">dbc_decoder.h:38</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a5138b825940e34689f7b3891627ee9ec"><div class="ttname"><a href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">DecodedSignalValue::rawValue</a></div><div class="ttdeci">std::int64_t rawValue</div><div class="ttdef"><b>Definition:</b> <a href="dbc__decoder_8h_source.html#l00040">dbc_decoder.h:40</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#l00041">dbc_decoder.h:41</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#l00042">dbc_decoder.h:42</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_acadc3b3bb21dd6b0412d342c7e6b20d7"><div class="ttname"><a href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">DecodedSignalValue::definition</a></div><div class="ttdeci">const DecodeSignal * definition</div><div class="ttdef"><b>Definition:</b> <a href="dbc__decoder_8h_source.html#l00039">dbc_decoder.h:39</a></div></div>
<div class="ttc" id="astructFrameKey_html"><div class="ttname"><a href="structFrameKey.html">FrameKey</a></div><div class="ttdoc">Key for fast frame lookup.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00099">decode_database.h:99</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#l00023">dbc_decoder.h:23</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#l00026">dbc_decoder.h:26</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#l00024">dbc_decoder.h:24</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#l00025">dbc_decoder.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="dbc__decoder_8cpp.html">dbc_decoder.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,130 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_decoder.h File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__decoder_8h.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle"><div class="title">dbc_decoder.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;vector&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &quot;<a class="el" href="decode__database_8h_source.html">decode_database.h</a>&quot;</code><br />
</div>
<p><a href="dbc__decoder_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structRawCanFrame.html">RawCanFrame</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw CAN frame used for runtime or trace decoding. <a href="structRawCanFrame.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDecodedSignalValue.html">DecodedSignalValue</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">One decoded signal value. <a href="structDecodedSignalValue.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDecodedFrameValue.html">DecodedFrameValue</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fully decoded frame. <a href="structDecodedFrameValue.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcDecoder.html">DbcDecoder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runtime CAN decoder using prebuilt decode database. <a href="classDbcDecoder.html#details">More...</a><br /></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>
<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>
</div></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="dbc__decoder_8h.html">dbc_decoder.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,7 @@
var dbc__decoder_8h =
[
[ "RawCanFrame", "structRawCanFrame.html", "structRawCanFrame" ],
[ "DecodedSignalValue", "structDecodedSignalValue.html", "structDecodedSignalValue" ],
[ "DecodedFrameValue", "structDecodedFrameValue.html", "structDecodedFrameValue" ],
[ "DbcDecoder", "classDbcDecoder.html", "classDbcDecoder" ]
];

View File

@@ -0,0 +1,190 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_decoder.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__decoder_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_decoder.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dbc__decoder_8h.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">#ifndef DBC_DECODER_H</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define DBC_DECODER_H</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="decode__database_8h.html">decode_database.h</a>&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="structRawCanFrame.html"> 23</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"> 24</a></span> std::uint32_t <a class="code hl_variable" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">canId</a>; </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"> 25</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">isExtended</a>; </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83"> 26</a></span> std::vector&lt;std::uint8_t&gt; <a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>; </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a>()</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> : <a class="code hl_variable" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">canId</a> (0U)</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> , <a class="code hl_variable" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">isExtended</a> (false)</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> , <a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>() {</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="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html"> 38</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"> 39</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> *<a class="code hl_variable" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">definition</a>; </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec"> 40</a></span> std::int64_t <a class="code hl_variable" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">rawValue</a>; </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"> 41</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a>; </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"> 42</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a>; </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a>()</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> : <a class="code hl_variable" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">definition</a> (nullptr)</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> , <a class="code hl_variable" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">rawValue</a> (0)</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> , <a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a> (0.0)</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> , <a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a> (false) {</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>};</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html"> 55</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> {</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"> 56</a></span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> *<a class="code hl_variable" href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">definition</a>; </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8"> 57</a></span> std::vector&lt;DecodedSignalValue&gt; signals; </div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"><a class="line" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"> 58</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">valid</a>; </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a>()</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> : <a class="code hl_variable" href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">definition</a> (nullptr)</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> , signals()</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> , <a class="code hl_variable" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">valid</a> (false) {</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> </div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classDbcDecoder.html"> 70</a></span><span class="keyword">class </span><a class="code hl_class" href="classDbcDecoder.html">DbcDecoder</a> {</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keyword">public</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="structDecodeFrame.html">DecodeFrame</a> *<a class="code hl_function" href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">FindFrame</a> (<span class="keyword">const</span> <a class="code hl_struct" href="structDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> std::uint32_t canId,</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> <span class="keywordtype">bool</span> isExtended) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</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_struct" href="structDecodeDatabase.html">DecodeDatabase</a> &amp;database,</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</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="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</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="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> &amp;signal,</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> std::uint64_t &amp;value);</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="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="l00098" name="l00098"></a><span class="lineno"> 98</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> std::uint32_t length,</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> std::uint64_t &amp;value);</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</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="l00103" name="l00103"></a><span class="lineno"> 103</span> std::uint32_t startBit,</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> std::uint32_t length,</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> std::uint64_t &amp;value);</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">static</span> std::int64_t SignExtend (std::uint64_t value, std::uint32_t bitLength);</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="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#l00070">dbc_decoder.h:70</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#l00031">dbc_decoder.cpp:31</a></div></div>
<div class="ttc" id="aclassDbcDecoder_html_ab2cfb2fb711c95d3a29365546b89f3da"><div class="ttname"><a href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">DbcDecoder::FindFrame</a></div><div class="ttdeci">const DecodeFrame * 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#l00014">dbc_decoder.cpp:14</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="astructDecodeDatabase_html"><div class="ttname"><a href="structDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Runtime decode database with fast lookup by CAN ID.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00132">decode_database.h:132</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#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#l00039">decode_database.h:39</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#l00055">dbc_decoder.h:55</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#l00058">dbc_decoder.h:58</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a60dda1cc352d2c8087f0bdbc81dd266c"><div class="ttname"><a href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">DecodedFrameValue::definition</a></div><div class="ttdeci">const DecodeFrame * definition</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"><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#l00038">dbc_decoder.h:38</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a5138b825940e34689f7b3891627ee9ec"><div class="ttname"><a href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">DecodedSignalValue::rawValue</a></div><div class="ttdeci">std::int64_t rawValue</div><div class="ttdef"><b>Definition:</b> <a href="dbc__decoder_8h_source.html#l00040">dbc_decoder.h:40</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#l00041">dbc_decoder.h:41</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#l00042">dbc_decoder.h:42</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_acadc3b3bb21dd6b0412d342c7e6b20d7"><div class="ttname"><a href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">DecodedSignalValue::definition</a></div><div class="ttdeci">const DecodeSignal * definition</div><div class="ttdef"><b>Definition:</b> <a href="dbc__decoder_8h_source.html#l00039">dbc_decoder.h:39</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#l00023">dbc_decoder.h:23</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#l00026">dbc_decoder.h:26</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#l00024">dbc_decoder.h:24</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#l00025">dbc_decoder.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="dbc__decoder_8h.html">dbc_decoder.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,114 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_parser.cpp File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__parser_8cpp.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_parser.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="dbc__parser_8h_source.html">dbc_parser.h</a>&quot;</code><br />
<code>#include &lt;fstream&gt;</code><br />
<code>#include &lt;sstream&gt;</code><br />
<code>#include &lt;stdexcept&gt;</code><br />
<code>#include &lt;cctype&gt;</code><br />
</div>
<p><a href="dbc__parser_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>
<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__parser_8cpp_source.html">dbc_parser.cpp</a>.</p>
</div></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="dbc__parser_8cpp.html">dbc_parser.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,466 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_parser.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__parser_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_parser.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="dbc__parser_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__parser_8h.html">dbc_parser.h</a>&quot;</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><span class="preprocessor">#include &lt;fstream&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;sstream&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;cctype&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="keyword">namespace </span>{</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> std::string TrimText (<span class="keyword">const</span> std::string &amp;text) {</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> std::string::size_type begin = 0U;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">while</span> ((begin &lt; text.size()) &amp;&amp;</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> std::isspace (<span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span><span class="keyword">&gt;</span> (text[begin])))</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> ++begin;</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> std::string::size_type end = text.size();</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keywordflow">while</span> ((end &gt; begin) &amp;&amp;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> std::isspace (<span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span><span class="keyword">&gt;</span> (text[end - 1U])))</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> --end;</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keywordflow">return</span> text.substr (begin, end - begin);</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>}</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"><a class="line" href="classDbcParser.html#aef72826942c9095d653fafa435855e56"> 40</a></span><a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> <a class="code hl_function" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">DbcParser::ParseFile</a> (<span class="keyword">const</span> std::string &amp;filePath)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> std::ifstream input (filePath.c_str());</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keywordflow">if</span> (!input.is_open())</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <span class="keywordflow">throw</span> std::runtime_error (<span class="stringliteral">&quot;Failed to open DBC file: &quot;</span> + filePath);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> database;</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> *currentFrame = <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> std::string line;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">while</span> (std::getline (input, line)) {</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> line = Trim (line);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">if</span> (line.empty())</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> <span class="keywordflow">continue</span>;</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> <span class="keywordflow">if</span> (IsFrameLine (line)) {</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> frame = ParseFrameLine (line);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> database.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>.push_back (frame);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> currentFrame = &amp;database.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>.back();</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IsSignalLine (line)) {</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">if</span> (currentFrame == <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keywordflow">throw</span> std::runtime_error (<span class="stringliteral">&quot;Signal found before any frame definition.&quot;</span>);</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> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> signal = ParseSignalLine (line);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> currentFrame-&gt;signals.push_back (signal);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (IsCommentLine (line))</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> ParseCommentLine (line, database);</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> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">return</span> database;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span>}</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="keywordtype">bool</span> DbcParser::IsFrameLine (<span class="keyword">const</span> std::string &amp;line) {</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <span class="keywordflow">return</span> (line.size() &gt;= 4U) &amp;&amp; (line.compare (0U, 4U, <span class="stringliteral">&quot;BO_ &quot;</span>) == 0);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>}</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><span class="keywordtype">bool</span> DbcParser::IsSignalLine (<span class="keyword">const</span> std::string &amp;line) {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">return</span> (line.size() &gt;= 4U) &amp;&amp; (line.compare (0U, 4U, <span class="stringliteral">&quot;SG_ &quot;</span>) == 0);</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> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="keywordtype">bool</span> DbcParser::IsCommentLine (<span class="keyword">const</span> std::string &amp;line) {</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> <span class="keywordflow">return</span> (line.size() &gt;= 4U) &amp;&amp; (line.compare (0U, 4U, <span class="stringliteral">&quot;CM_ &quot;</span>) == 0);</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span>}</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>std::string DbcParser::Trim (<span class="keyword">const</span> std::string &amp;text) {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keywordflow">return</span> TrimText (text);</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> </div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span>std::vector&lt;std::string&gt; DbcParser::SplitReceivers (<span class="keyword">const</span> std::string &amp;text) {</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> std::vector&lt;std::string&gt; receivers;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> std::string token;</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> std::istringstream stream (text);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">while</span> (std::getline (stream, token, <span class="charliteral">&#39;,&#39;</span>)) {</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> token = TrimText (token);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">if</span> (!token.empty())</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> receivers.push_back (token);</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> </div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">return</span> receivers;</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">void</span> DbcParser::NormalizeCanId (std::uint32_t rawCanId,</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> std::uint32_t &amp;normalizedCanId,</div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordtype">bool</span> &amp;isExtended) {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment"> * DBC commonly stores extended identifiers with bit 31 set.</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="comment"> * Example:</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"> * raw id = 0x80000000 | actual_29_bit_id</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"> */</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">if</span> ((rawCanId &amp; 0x80000000U) != 0U) {</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> isExtended = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> normalizedCanId = (rawCanId &amp; 0x1FFFFFFFU);</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> } <span class="keywordflow">else</span> {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> isExtended = (rawCanId &gt; 0x7FFU);</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> normalizedCanId = rawCanId;</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> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span>std::uint32_t DbcParser::TryExtractPgn (std::uint32_t canId, <span class="keywordtype">bool</span> isExtended, <span class="keywordtype">bool</span> &amp;hasPgn) {</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> hasPgn = <span class="keyword">false</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="keywordflow">if</span> (!isExtended)</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <span class="keywordflow">return</span> 0U;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keywordflow">if</span> ((canId &amp; 0x1FFFFFFFU) != canId)</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> 0U;</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">const</span> std::uint32_t pf = (canId &gt;&gt; 16U) &amp; 0xFFU;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keyword">const</span> std::uint32_t ps = (canId &gt;&gt; 8U) &amp; 0xFFU;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> <span class="keyword">const</span> std::uint32_t dp = (canId &gt;&gt; 24U) &amp; 0x01U;</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> std::uint32_t pgn = 0U;</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">if</span> (pf &lt; 240U)</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> pgn = (dp &lt;&lt; 16U) | (pf &lt;&lt; 8U);</div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> pgn = (dp &lt;&lt; 16U) | (pf &lt;&lt; 8U) | ps;</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> hasPgn = <span class="keyword">true</span>;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="keywordflow">return</span> pgn;</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</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><a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> DbcParser::ParseFrameLine (<span class="keyword">const</span> std::string &amp;line) {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> * Example:</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment"> * BO_ 256 EngineData: 8 EEC1</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment"> */</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> std::istringstream stream (line);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> std::string token;</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> frame;</div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span> std::uint32_t rawCanId = 0U;</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> stream &gt;&gt; token;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keywordflow">if</span> (token != <span class="stringliteral">&quot;BO_&quot;</span>)</div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keywordflow">throw</span> std::runtime_error (<span class="stringliteral">&quot;Invalid frame line: &quot;</span> + line);</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> stream &gt;&gt; rawCanId;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> NormalizeCanId (rawCanId, frame.<a class="code hl_variable" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">canId</a>, frame.<a class="code hl_variable" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">isExtended</a>);</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> stream &gt;&gt; token;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="keywordflow">if</span> (token.empty())</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">throw</span> std::runtime_error (<span class="stringliteral">&quot;Missing frame name: &quot;</span> + line);</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> </div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> <span class="keywordflow">if</span> (token[token.size() - 1U] == <span class="charliteral">&#39;:&#39;</span>)</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> token.erase (token.size() - 1U, 1U);</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> frame.<a class="code hl_variable" href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">name</a> = token;</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</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> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> dlcValue = 0U;</div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> stream &gt;&gt; dlcValue;</div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> frame.<a class="code hl_variable" href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">dlc</a> = <span class="keyword">static_cast&lt;</span>std::uint8_t<span class="keyword">&gt;</span> (dlcValue);</div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> stream &gt;&gt; frame.<a class="code hl_variable" href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">transmitter</a>;</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> frame.<a class="code hl_variable" href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">pgn</a> = TryExtractPgn (frame.<a class="code hl_variable" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">canId</a>, frame.<a class="code hl_variable" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">isExtended</a>, frame.<a class="code hl_variable" href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">hasPgn</a>);</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> </div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> <span class="keywordflow">return</span> frame;</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> </div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> DbcParser::ParseSignalLine (<span class="keyword">const</span> std::string &amp;line) {</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment"> * Example:</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment"> * SG_ EngineSpeed : 0|16@1+ (0.125,0) [0|8000] &quot;rpm&quot; ECU1,ECU2</span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment"> */</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> signal;</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> std::string work = TrimText (line);</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> <span class="keywordflow">if</span> (work.compare (0U, 4U, <span class="stringliteral">&quot;SG_ &quot;</span>) != 0)</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span> <span class="keywordflow">throw</span> std::runtime_error (<span class="stringliteral">&quot;Invalid signal line: &quot;</span> + line);</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> </div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> work.erase (0U, 4U);</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="keyword">const</span> std::string::size_type colonPos = work.find (<span class="charliteral">&#39;:&#39;</span>);</div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> <span class="keywordflow">if</span> (colonPos == std::string::npos)</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <span class="keywordflow">throw</span> std::runtime_error (<span class="stringliteral">&quot;Signal line missing &#39;:&#39; : &quot;</span> + line);</div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> signal.<a class="code hl_variable" href="structSignalInfo.html#a379e422a00cad56f896cacf60455b088">name</a> = TrimText (work.substr (0U, colonPos));</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> std::string rest = TrimText (work.substr (colonPos + 1U));</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="keyword">const</span> std::string::size_type pipePos = rest.find (<span class="charliteral">&#39;|&#39;</span>);</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> <span class="keyword">const</span> std::string::size_type atPos = rest.find (<span class="charliteral">&#39;@&#39;</span>);</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> <span class="keyword">const</span> std::string::size_type signPos = rest.find_first_of (<span class="stringliteral">&quot;+-&quot;</span>, atPos);</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> <span class="keyword">const</span> std::string::size_type factorBegin = rest.find (<span class="charliteral">&#39;(&#39;</span>);</div>
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> <span class="keyword">const</span> std::string::size_type factorComma = rest.find (<span class="charliteral">&#39;,&#39;</span>, factorBegin);</div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keyword">const</span> std::string::size_type factorEnd = rest.find (<span class="charliteral">&#39;)&#39;</span>, factorComma);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> <span class="keyword">const</span> std::string::size_type rangeBegin = rest.find (<span class="charliteral">&#39;[&#39;</span>);</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> <span class="keyword">const</span> std::string::size_type rangeSep = rest.find (<span class="charliteral">&#39;|&#39;</span>, rangeBegin);</div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> <span class="keyword">const</span> std::string::size_type rangeEnd = rest.find (<span class="charliteral">&#39;]&#39;</span>, rangeSep);</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">const</span> std::string::size_type unitBegin = rest.find (<span class="charliteral">&#39;&quot;&#39;</span>, rangeEnd);</div>
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> <span class="keyword">const</span> std::string::size_type unitEnd = rest.find (<span class="charliteral">&#39;&quot;&#39;</span>, unitBegin + 1U);</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> <span class="keywordflow">if</span> ((pipePos == std::string::npos) ||</div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> (atPos == std::string::npos) ||</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> (signPos == std::string::npos) ||</div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> (factorBegin == std::string::npos) ||</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> (factorComma == std::string::npos) ||</div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> (factorEnd == std::string::npos) ||</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span> (rangeBegin == std::string::npos) ||</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> (rangeSep == std::string::npos) ||</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> (rangeEnd == std::string::npos) ||</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span> (unitBegin == std::string::npos) ||</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span> (unitEnd == std::string::npos))</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> <span class="keywordflow">throw</span> std::runtime_error (<span class="stringliteral">&quot;Unsupported signal syntax: &quot;</span> + line);</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> signal.<a class="code hl_variable" href="structSignalInfo.html#ace290724f9801521609aedaa946d61f1">startBit</a> = <span class="keyword">static_cast&lt;</span>std::uint32_t<span class="keyword">&gt;</span> (</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span> std::stoul (TrimText (rest.substr (0U, pipePos)))</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> </div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span> signal.<a class="code hl_variable" href="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa">length</a> = <span class="keyword">static_cast&lt;</span>std::uint32_t<span class="keyword">&gt;</span> (</div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> std::stoul (TrimText (rest.substr (pipePos + 1U, atPos - pipePos - 1U)))</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> </div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span> {</div>
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span> <span class="keywordflow">if</span> ((atPos + 1U) &gt;= rest.size())</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> <span class="keywordflow">throw</span> std::runtime_error (<span class="stringliteral">&quot;Invalid endianness in signal: &quot;</span> + line);</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> <span class="keyword">const</span> <span class="keywordtype">char</span> endianChar = rest[atPos + 1U];</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> signal.<a class="code hl_variable" href="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c">isLittleEndian</a> = (endianChar == <span class="charliteral">&#39;1&#39;</span>);</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> </div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> {</div>
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keyword">const</span> <span class="keywordtype">char</span> signChar = rest[signPos];</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> signal.<a class="code hl_variable" href="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f">isSigned</a> = (signChar == <span class="charliteral">&#39;-&#39;</span>);</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> signal.<a class="code hl_variable" href="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499">factor</a> = std::stod (</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> TrimText (rest.substr (factorBegin + 1U, factorComma - factorBegin - 1U))</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> signal.<a class="code hl_variable" href="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e">offset</a> = std::stod (</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> TrimText (rest.substr (factorComma + 1U, factorEnd - factorComma - 1U))</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> );</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> signal.<a class="code hl_variable" href="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b">minimum</a> = std::stod (</div>
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> TrimText (rest.substr (rangeBegin + 1U, rangeSep - rangeBegin - 1U))</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</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> signal.<a class="code hl_variable" href="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52">maximum</a> = std::stod (</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span> TrimText (rest.substr (rangeSep + 1U, rangeEnd - rangeSep - 1U))</div>
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span> );</div>
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span> </div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> signal.<a class="code hl_variable" href="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01">unit</a> = rest.substr (unitBegin + 1U, unitEnd - unitBegin - 1U);</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> </div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> {</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span> <span class="keyword">const</span> std::string receiversText = TrimText (rest.substr (unitEnd + 1U));</div>
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span> signal.<a class="code hl_variable" href="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3">receivers</a> = SplitReceivers (receiversText);</div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</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="keywordflow">return</span> signal;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span>}</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> </div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span><span class="keywordtype">void</span> DbcParser::ParseCommentLine (<span class="keyword">const</span> std::string &amp;line, <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database) {</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="comment">/*</span></div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span><span class="comment"> * Examples:</span></div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="comment"> * CM_ BO_ 256 &quot;Frame comment&quot;;</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span><span class="comment"> * CM_ SG_ 256 EngineSpeed &quot;Signal comment&quot;;</span></div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><span class="comment"> */</span></div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> std::istringstream stream (line);</div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> std::string token;</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> stream &gt;&gt; token;</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> </div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <span class="keywordflow">if</span> (token != <span class="stringliteral">&quot;CM_&quot;</span>)</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> stream &gt;&gt; token;</div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> </div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> <span class="keywordflow">if</span> (token == <span class="stringliteral">&quot;BO_&quot;</span>) {</div>
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> std::uint32_t rawCanId = 0U;</div>
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span> std::uint32_t canId = 0U;</div>
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span> <span class="keywordtype">bool</span> isExtended = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> </div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> stream &gt;&gt; rawCanId;</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> NormalizeCanId (rawCanId, canId, isExtended);</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> </div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keyword">const</span> std::string::size_type quoteBegin = line.find (<span class="charliteral">&#39;&quot;&#39;</span>);</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">const</span> std::string::size_type quoteEnd = line.rfind (<span class="charliteral">&#39;&quot;&#39;</span>);</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> </div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> <span class="keywordflow">if</span> ((quoteBegin == std::string::npos) ||</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> (quoteEnd == std::string::npos) ||</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> (quoteEnd &lt;= quoteBegin))</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">return</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> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> *frame = FindFrameById (database, canId, isExtended);</div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> <span class="keywordflow">if</span> (frame != <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> frame-&gt;<a class="code hl_variable" href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">comment</a> = line.substr (quoteBegin + 1U, quoteEnd - quoteBegin - 1U);</div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (token == <span class="stringliteral">&quot;SG_&quot;</span>) {</div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> std::uint32_t rawCanId = 0U;</div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> std::uint32_t canId = 0U;</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> <span class="keywordtype">bool</span> isExtended = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> std::string signalName;</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> </div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> stream &gt;&gt; rawCanId;</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> stream &gt;&gt; signalName;</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> </div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> NormalizeCanId (rawCanId, canId, isExtended);</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> </div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> <span class="keyword">const</span> std::string::size_type quoteBegin = line.find (<span class="charliteral">&#39;&quot;&#39;</span>);</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span> <span class="keyword">const</span> std::string::size_type quoteEnd = line.rfind (<span class="charliteral">&#39;&quot;&#39;</span>);</div>
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> </div>
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> <span class="keywordflow">if</span> ((quoteBegin == std::string::npos) ||</div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> (quoteEnd == std::string::npos) ||</div>
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> (quoteEnd &lt;= quoteBegin))</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> </div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> *frame = FindFrameById (database, canId, isExtended);</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">if</span> (frame != <span class="keyword">nullptr</span>) {</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> *signal = FindSignalByName (*frame, signalName);</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordflow">if</span> (signal != <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> signal-&gt;<a class="code hl_variable" href="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5">comment</a> = line.substr (quoteBegin + 1U, quoteEnd - quoteBegin - 1U);</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> }</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> }</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span>}</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> </div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span><a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> *DbcParser::FindFrameById (<a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database,</div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> std::uint32_t canId,</div>
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="keywordtype">bool</span> isExtended) {</div>
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> <span class="keywordflow">for</span> (std::size_t index = 0U; index &lt; database.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>.size(); ++index) {</div>
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> <span class="keywordflow">if</span> ((database.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>[index].canId == canId) &amp;&amp;</div>
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> (database.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>[index].isExtended == isExtended))</div>
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">return</span> &amp;database.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>[index];</div>
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> }</div>
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> </div>
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span>}</div>
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> </div>
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span><a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> *DbcParser::FindSignalByName (<a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> &amp;frame, <span class="keyword">const</span> std::string &amp;signalName) {</div>
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> <span class="keywordflow">for</span> (std::size_t index = 0U; index &lt; frame.signals.size(); ++index) {</div>
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="keywordflow">if</span> (frame.signals[index].<a class="code hl_variable" href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">name</a> == signalName)</div>
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> <span class="keywordflow">return</span> &amp;frame.signals[index];</div>
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> }</div>
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> </div>
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span>}</div>
<div class="ttc" id="aclassDbcParser_html_aef72826942c9095d653fafa435855e56"><div class="ttname"><a href="classDbcParser.html#aef72826942c9095d653fafa435855e56">DbcParser::ParseFile</a></div><div class="ttdeci">DbcDatabase ParseFile(const std::string &amp;filePath) const</div><div class="ttdoc">Parse DBC file.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__parser_8cpp_source.html#l00040">dbc_parser.cpp:40</a></div></div>
<div class="ttc" id="adbc__parser_8h_html"><div class="ttname"><a href="dbc__parser_8h.html">dbc_parser.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</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="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="astructFrameInfo_html_a34b726afaad2ac5c697fdb2ac070cdaf"><div class="ttname"><a href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">FrameInfo::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00027">frame_info.h:27</a></div></div>
<div class="ttc" id="astructFrameInfo_html_a4737a5420213ad4304724e39f3a4e55d"><div class="ttname"><a href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">FrameInfo::hasPgn</a></div><div class="ttdeci">bool hasPgn</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00029">frame_info.h:29</a></div></div>
<div class="ttc" id="astructFrameInfo_html_a92749ec3798d4211a505860fb389a9e8"><div class="ttname"><a href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">FrameInfo::transmitter</a></div><div class="ttdeci">std::string transmitter</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00031">frame_info.h:31</a></div></div>
<div class="ttc" id="astructFrameInfo_html_aa2b198ea0f55e560c123d35e7b3ecab9"><div class="ttname"><a href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">FrameInfo::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00030">frame_info.h:30</a></div></div>
<div class="ttc" id="astructFrameInfo_html_abb53a7f93ed7abc0ea1ae4a8ccafcdcb"><div class="ttname"><a href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">FrameInfo::name</a></div><div class="ttdeci">std::string name</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="astructFrameInfo_html_ace75121294f9d89b762080ab5643293c"><div class="ttname"><a href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">FrameInfo::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00032">frame_info.h:32</a></div></div>
<div class="ttc" id="astructFrameInfo_html_aee518b33f1000bf0b7f6e4a87474c943"><div class="ttname"><a href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">FrameInfo::pgn</a></div><div class="ttdeci">std::uint32_t pgn</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00028">frame_info.h:28</a></div></div>
<div class="ttc" id="astructFrameInfo_html_af470b0742c05bfbffc31c51a68f5c05e"><div class="ttname"><a href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">FrameInfo::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00026">frame_info.h:26</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#l00022">signal_info.h:22</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a1008b5201f71848177217bd52fb84baa"><div class="ttname"><a href="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa">SignalInfo::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00025">signal_info.h:25</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a1f214f03e94ef5794de2d3367bfcbd01"><div class="ttname"><a href="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01">SignalInfo::unit</a></div><div class="ttdeci">std::string unit</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00032">signal_info.h:32</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a2c95562fd0b29327a7fd7b1e6feee7f3"><div class="ttname"><a href="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3">SignalInfo::receivers</a></div><div class="ttdeci">std::vector&lt; std::string &gt; receivers</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00033">signal_info.h:33</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a379e422a00cad56f896cacf60455b088"><div class="ttname"><a href="structSignalInfo.html#a379e422a00cad56f896cacf60455b088">SignalInfo::name</a></div><div class="ttdeci">std::string name</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00023">signal_info.h:23</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a52a52b320eef92fbcb4626307f9a498f"><div class="ttname"><a href="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f">SignalInfo::isSigned</a></div><div class="ttdeci">bool isSigned</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00027">signal_info.h:27</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ab7d0769f47aa540656b22e4e49db517e"><div class="ttname"><a href="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e">SignalInfo::offset</a></div><div class="ttdeci">double offset</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00029">signal_info.h:29</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ac99ba7563a5dad01e39c4257216953f5"><div class="ttname"><a href="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5">SignalInfo::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00034">signal_info.h:34</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ace290724f9801521609aedaa946d61f1"><div class="ttname"><a href="structSignalInfo.html#ace290724f9801521609aedaa946d61f1">SignalInfo::startBit</a></div><div class="ttdeci">std::uint32_t startBit</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="astructSignalInfo_html_ada7bf94fbeaa26bd08c73982b5af255b"><div class="ttname"><a href="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b">SignalInfo::minimum</a></div><div class="ttdeci">double minimum</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00030">signal_info.h:30</a></div></div>
<div class="ttc" id="astructSignalInfo_html_adf1c4331b9eabced0d7fdda40ff0eb52"><div class="ttname"><a href="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52">SignalInfo::maximum</a></div><div class="ttdeci">double maximum</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00031">signal_info.h:31</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ae4f78d99a2750aa564d7eba860171499"><div class="ttname"><a href="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499">SignalInfo::factor</a></div><div class="ttdeci">double factor</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00028">signal_info.h:28</a></div></div>
<div class="ttc" id="astructSignalInfo_html_af363b1563fb4c7cc8973f9a80c06846c"><div class="ttname"><a href="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c">SignalInfo::isLittleEndian</a></div><div class="ttdeci">bool isLittleEndian</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00026">signal_info.h:26</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="dbc__parser_8cpp.html">dbc_parser.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,122 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_parser.h File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__parser_8h.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle"><div class="title">dbc_parser.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &quot;<a class="el" href="dbc__database_8h_source.html">dbc_database.h</a>&quot;</code><br />
</div>
<p><a href="dbc__parser_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcParser.html">DbcParser</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Minimal DBC parser. <a href="classDbcParser.html#details">More...</a><br /></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>
<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__parser_8h_source.html">dbc_parser.h</a>.</p>
</div></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="dbc__parser_8h.html">dbc_parser.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var dbc__parser_8h =
[
[ "DbcParser", "classDbcParser.html", "classDbcParser" ]
];

View File

@@ -0,0 +1,144 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_parser.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__parser_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_parser.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dbc__parser_8h.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">#ifndef DBC_PARSER_H</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define DBC_PARSER_H</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="dbc__database_8h.html">dbc_database.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"><a class="line" href="classDbcParser.html"> 35</a></span><span class="keyword">class </span><a class="code hl_class" href="classDbcParser.html">DbcParser</a> {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> <a class="code hl_function" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">ParseFile</a> (<span class="keyword">const</span> std::string &amp;filePath) <span class="keyword">const</span>;</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsFrameLine (<span class="keyword">const</span> std::string &amp;line);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsSignalLine (<span class="keyword">const</span> std::string &amp;line);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsCommentLine (<span class="keyword">const</span> std::string &amp;line);</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keyword">static</span> std::string Trim (<span class="keyword">const</span> std::string &amp;text);</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keyword">static</span> std::vector&lt;std::string&gt; SplitReceivers (<span class="keyword">const</span> std::string &amp;text);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">static</span> std::uint32_t TryExtractPgn (std::uint32_t canId, <span class="keywordtype">bool</span> isExtended, <span class="keywordtype">bool</span> &amp;hasPgn);</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="keyword">static</span> <span class="keywordtype">void</span> NormalizeCanId (std::uint32_t rawCanId,</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> std::uint32_t &amp;normalizedCanId,</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <span class="keywordtype">bool</span> &amp;isExtended);</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">static</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> ParseFrameLine (<span class="keyword">const</span> std::string &amp;line);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> <span class="keyword">static</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> ParseSignalLine (<span class="keyword">const</span> std::string &amp;line);</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="keyword">static</span> <span class="keywordtype">void</span> ParseCommentLine (<span class="keyword">const</span> std::string &amp;line, <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database);</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="keyword">static</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> *FindFrameById (<a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database,</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> std::uint32_t canId,</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="keywordtype">bool</span> isExtended);</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> <span class="keyword">static</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> *FindSignalByName (<a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> &amp;frame, <span class="keyword">const</span> std::string &amp;signalName);</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> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="preprocessor">#endif </span><span class="comment">/* DBC_PARSER_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aclassDbcParser_html"><div class="ttname"><a href="classDbcParser.html">DbcParser</a></div><div class="ttdoc">Minimal DBC parser.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__parser_8h_source.html#l00035">dbc_parser.h:35</a></div></div>
<div class="ttc" id="aclassDbcParser_html_aef72826942c9095d653fafa435855e56"><div class="ttname"><a href="classDbcParser.html#aef72826942c9095d653fafa435855e56">DbcParser::ParseFile</a></div><div class="ttdeci">DbcDatabase ParseFile(const std::string &amp;filePath) const</div><div class="ttdoc">Parse DBC file.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__parser_8cpp_source.html#l00040">dbc_parser.cpp:40</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="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="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#l00022">signal_info.h:22</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="dbc__parser_8h.html">dbc_parser.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_tree_builder.cpp File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__tree__builder_8cpp.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_tree_builder.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="dbc__tree__builder_8h_source.html">dbc_tree_builder.h</a>&quot;</code><br />
</div>
<p><a href="dbc__tree__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>
<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__tree__builder_8cpp_source.html">dbc_tree_builder.cpp</a>.</p>
</div></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="dbc__tree__builder_8cpp.html">dbc_tree_builder.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,127 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_tree_builder.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__tree__builder_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_tree_builder.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="dbc__tree__builder_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__tree__builder_8h.html">dbc_tree_builder.h</a>&quot;</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"><a class="line" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b"> 14</a></span>std::unique_ptr&lt;TreeNode&gt; <a class="code hl_function" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">DbcTreeBuilder::Build</a> (<span class="keyword">const</span> <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> std::unique_ptr&lt;TreeNode&gt; root (<span class="keyword">new</span> <a class="code hl_class" href="classTreeNode.html">TreeNode</a>());</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> <span class="keywordflow">for</span> (std::size_t frameIndex = 0U; frameIndex &lt; database.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>.size(); ++frameIndex) {</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> <span class="keyword">const</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> &amp;frame = database.<a class="code hl_variable" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">frames</a>[frameIndex];</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> std::unique_ptr&lt;TreeNode&gt; frameNode (<span class="keyword">new</span> <a class="code hl_class" href="classTreeNode.html">TreeNode</a> (frame));</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span> <span class="keywordflow">for</span> (std::size_t signalIndex = 0U; signalIndex &lt; frame.signals.size(); ++signalIndex) {</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> <span class="keyword">const</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> &amp;signal = frame.signals[signalIndex];</div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span> std::unique_ptr&lt;TreeNode&gt; signalNode (<span class="keyword">new</span> <a class="code hl_class" href="classTreeNode.html">TreeNode</a> (signal));</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> frameNode-&gt;AddChild (std::move (signalNode));</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> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> root-&gt;AddChild (std::move (frameNode));</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> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">return</span> root;</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>}</div>
<div class="ttc" id="aclassDbcTreeBuilder_html_a7e57d067d831b14b383947fd125edd4b"><div class="ttname"><a href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">DbcTreeBuilder::Build</a></div><div class="ttdeci">std::unique_ptr&lt; TreeNode &gt; Build(const DbcDatabase &amp;database) const</div><div class="ttdoc">Build tree representation of parsed DBC data.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__tree__builder_8cpp_source.html#l00014">dbc_tree_builder.cpp:14</a></div></div>
<div class="ttc" id="aclassTreeNode_html"><div class="ttname"><a href="classTreeNode.html">TreeNode</a></div><div class="ttdoc">Tree node for later use in model/view or other hierarchy consumers.</div><div class="ttdef"><b>Definition:</b> <a href="tree__node_8h_source.html#l00035">tree_node.h:35</a></div></div>
<div class="ttc" id="adbc__tree__builder_8h_html"><div class="ttname"><a href="dbc__tree__builder_8h.html">dbc_tree_builder.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</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="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#l00022">signal_info.h:22</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="dbc__tree__builder_8cpp.html">dbc_tree_builder.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,121 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_tree_builder.h File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__tree__builder_8h.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle"><div class="title">dbc_tree_builder.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;memory&gt;</code><br />
<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="tree__node_8h_source.html">tree_node.h</a>&quot;</code><br />
</div>
<p><a href="dbc__tree__builder_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classDbcTreeBuilder.html">DbcTreeBuilder</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Builds a simple tree from parsed DBC database. <a href="classDbcTreeBuilder.html#details">More...</a><br /></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>
<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__tree__builder_8h_source.html">dbc_tree_builder.h</a>.</p>
</div></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="dbc__tree__builder_8h.html">dbc_tree_builder.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var dbc__tree__builder_8h =
[
[ "DbcTreeBuilder", "classDbcTreeBuilder.html", "classDbcTreeBuilder" ]
];

View File

@@ -0,0 +1,119 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: dbc_tree_builder.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('dbc__tree__builder_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">dbc_tree_builder.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dbc__tree__builder_8h.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">#ifndef DBC_TREE_BUILDER_H</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define DBC_TREE_BUILDER_H</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &quot;<a class="code" href="dbc__database_8h.html">dbc_database.h</a>&quot;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="tree__node_8h.html">tree_node.h</a>&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="classDbcTreeBuilder.html"> 23</a></span><span class="keyword">class </span><a class="code hl_class" href="classDbcTreeBuilder.html">DbcTreeBuilder</a> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> std::unique_ptr&lt;TreeNode&gt; <a class="code hl_function" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">Build</a> (<span class="keyword">const</span> <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> &amp;database) <span class="keyword">const</span>;</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> </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#endif </span><span class="comment">/* DBC_TREE_BUILDER_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="aclassDbcTreeBuilder_html"><div class="ttname"><a href="classDbcTreeBuilder.html">DbcTreeBuilder</a></div><div class="ttdoc">Builds a simple tree from parsed DBC database.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__tree__builder_8h_source.html#l00023">dbc_tree_builder.h:23</a></div></div>
<div class="ttc" id="aclassDbcTreeBuilder_html_a7e57d067d831b14b383947fd125edd4b"><div class="ttname"><a href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">DbcTreeBuilder::Build</a></div><div class="ttdeci">std::unique_ptr&lt; TreeNode &gt; Build(const DbcDatabase &amp;database) const</div><div class="ttdoc">Build tree representation of parsed DBC data.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__tree__builder_8cpp_source.html#l00014">dbc_tree_builder.cpp:14</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="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="atree__node_8h_html"><div class="ttname"><a href="tree__node_8h.html">tree_node.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</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="dbc__tree__builder_8h.html">dbc_tree_builder.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,201 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: decode_database.h File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('decode__database_8h.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a> </div>
<div class="headertitle"><div class="title">decode_database.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;unordered_map&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
</div>
<p><a href="decode__database_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDecodeSignal.html">DecodeSignal</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runtime-ready signal definition. <a href="structDecodeSignal.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDecodeFrame.html">DecodeFrame</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runtime-ready frame definition. <a href="structDecodeFrame.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFrameKey.html">FrameKey</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Key for fast frame lookup. <a href="structFrameKey.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFrameKeyHasher.html">FrameKeyHasher</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Hasher for frame key. <a href="structFrameKeyHasher.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structDecodeDatabase.html">DecodeDatabase</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Runtime decode database with fast lookup by CAN ID. <a href="structDecodeDatabase.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</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:aaeb92d42f5a6e27b8ba19f18d69d142b"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a> { <b>Intel</b>
, <b>Motorola</b>
}</td></tr>
<tr class="memdesc:aaeb92d42f5a6e27b8ba19f18d69d142b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal byte order used for runtime decoding. <a href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">More...</a><br /></td></tr>
<tr class="separator:aaeb92d42f5a6e27b8ba19f18d69d142b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9971b6ef33e02ba2c75d19c1d2518a1"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">ValueType</a> { <b>Unsigned</b>
, <b>Signed</b>
}</td></tr>
<tr class="memdesc:ad9971b6ef33e02ba2c75d19c1d2518a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Signal numeric type. <a href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">More...</a><br /></td></tr>
<tr class="separator:ad9971b6ef33e02ba2c75d19c1d2518a1"><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>
<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="decode__database_8h_source.html">decode_database.h</a>.</p>
</div><h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="aaeb92d42f5a6e27b8ba19f18d69d142b" name="aaeb92d42f5a6e27b8ba19f18d69d142b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaeb92d42f5a6e27b8ba19f18d69d142b">&#9670;&nbsp;</a></span>ByteOrder</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum class <a class="el" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Signal byte order used for runtime decoding. </p>
<p class="definition">Definition at line <a class="el" href="decode__database_8h_source.html#l00023">23</a> of file <a class="el" href="decode__database_8h_source.html">decode_database.h</a>.</p>
</div>
</div>
<a id="ad9971b6ef33e02ba2c75d19c1d2518a1" name="ad9971b6ef33e02ba2c75d19c1d2518a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad9971b6ef33e02ba2c75d19c1d2518a1">&#9670;&nbsp;</a></span>ValueType</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum class <a class="el" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">ValueType</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Signal numeric type. </p>
<p class="definition">Definition at line <a class="el" href="decode__database_8h_source.html#l00031">31</a> of file <a class="el" href="decode__database_8h_source.html">decode_database.h</a>.</p>
</div>
</div>
</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="decode__database_8h.html">decode_database.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,16 @@
var decode__database_8h =
[
[ "DecodeSignal", "structDecodeSignal.html", "structDecodeSignal" ],
[ "DecodeFrame", "structDecodeFrame.html", "structDecodeFrame" ],
[ "FrameKey", "structFrameKey.html", null ],
[ "FrameKeyHasher", "structFrameKeyHasher.html", null ],
[ "DecodeDatabase", "structDecodeDatabase.html", null ],
[ "ByteOrder", "decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b", [
[ "Intel", "decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5", null ],
[ "Motorola", "decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31", null ]
] ],
[ "ValueType", "decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1", [
[ "Unsigned", "decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a", null ],
[ "Signed", "decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379", null ]
] ]
];

View File

@@ -0,0 +1,230 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: decode_database.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('decode__database_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">decode_database.h</div></div>
</div><!--header-->
<div class="contents">
<a href="decode__database_8h.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">#ifndef DECODE_DATABASE_H</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define DECODE_DATABASE_H</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b"> 23</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a> {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> Intel,</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> Motorola</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span>};</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1"> 31</a></span><span class="keyword">enum class</span> <a class="code hl_enumeration" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">ValueType</a> {</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> Unsigned,</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> Signed</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="line"><a id="l00039" name="l00039"></a><span class="lineno"><a class="line" href="structDecodeSignal.html"> 39</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a> {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"> 40</a></span> std::string <a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a>; </div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"> 41</a></span> std::uint32_t <a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a>; </div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"> 42</a></span> std::uint32_t <a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a>; </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d"> 43</a></span> <a class="code hl_enumeration" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a> <a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a>; </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8"> 44</a></span> <a class="code hl_enumeration" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">ValueType</a> <a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a>; </div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391"> 45</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">factor</a>; </div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"> 46</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">offset</a>; </div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"> 47</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">minimum</a>; </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"> 48</a></span> <span class="keywordtype">double</span> <a class="code hl_variable" href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">maximum</a>; </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"> 49</a></span> std::string <a class="code hl_variable" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">unit</a>; </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"> 50</a></span> std::vector&lt;std::string&gt; <a class="code hl_variable" href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">receivers</a>; </div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"> 51</a></span> std::string <a class="code hl_variable" href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">comment</a>; </div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <a class="code hl_struct" href="structDecodeSignal.html">DecodeSignal</a>()</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> : <a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a>()</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> , <a class="code hl_variable" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">startBit</a> (0U)</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> , <a class="code hl_variable" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">length</a> (0U)</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> , <a class="code hl_variable" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">byteOrder</a> (<a class="code hl_enumeration" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">ByteOrder</a>::Intel)</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> , <a class="code hl_variable" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">valueType</a> (<a class="code hl_enumeration" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">ValueType</a>::Unsigned)</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> , <a class="code hl_variable" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">factor</a> (1.0)</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> , <a class="code hl_variable" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">offset</a> (0.0)</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> , <a class="code hl_variable" href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">minimum</a> (0.0)</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> , <a class="code hl_variable" href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">maximum</a> (0.0)</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> , <a class="code hl_variable" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">unit</a>()</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> , <a class="code hl_variable" href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">receivers</a>()</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> , <a class="code hl_variable" href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">comment</a>() {</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>};</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"><a class="line" href="structDecodeFrame.html"> 72</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a> {</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"> 73</a></span> std::string <a class="code hl_variable" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">name</a>; </div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"> 74</a></span> std::uint32_t <a class="code hl_variable" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">canId</a>; </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"> 75</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">isExtended</a>; </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"> 76</a></span> std::uint8_t <a class="code hl_variable" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">dlc</a>; </div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"> 77</a></span> std::uint32_t <a class="code hl_variable" href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">pgn</a>; </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"> 78</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">hasPgn</a>; </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"> 79</a></span> std::string <a class="code hl_variable" href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">transmitter</a>; </div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"> 80</a></span> std::string <a class="code hl_variable" href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">comment</a>; </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14"> 81</a></span> std::vector&lt;DecodeSignal&gt; signals; </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <a class="code hl_struct" href="structDecodeFrame.html">DecodeFrame</a>()</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> : <a class="code hl_variable" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">name</a>()</div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span> , <a class="code hl_variable" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">canId</a> (0U)</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> , <a class="code hl_variable" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">isExtended</a> (false)</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> , <a class="code hl_variable" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">dlc</a> (0U)</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> , <a class="code hl_variable" href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">pgn</a> (0U)</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> , <a class="code hl_variable" href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">hasPgn</a> (false)</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> , <a class="code hl_variable" href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">transmitter</a>()</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> , <a class="code hl_variable" href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">comment</a>()</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> , signals() {</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> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="structFrameKey.html"> 99</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structFrameKey.html">FrameKey</a> {</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> std::uint32_t canId;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> <span class="keywordtype">bool</span> isExtended;</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <a class="code hl_struct" href="structFrameKey.html">FrameKey</a>()</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> : canId (0U)</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> , isExtended (<span class="keyword">false</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> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_struct" href="structFrameKey.html">FrameKey</a> (std::uint32_t <span class="keywordtype">id</span>, <span class="keywordtype">bool</span> extended)</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> : canId (<span class="keywordtype">id</span>)</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> , isExtended (extended) {</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> <span class="keywordtype">bool</span> operator== (<span class="keyword">const</span> <a class="code hl_struct" href="structFrameKey.html">FrameKey</a> &amp;other)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <span class="keywordflow">return</span> (canId == other.canId) &amp;&amp; (isExtended == other.isExtended);</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> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="structFrameKeyHasher.html"> 121</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structFrameKeyHasher.html">FrameKeyHasher</a> {</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> std::size_t operator() (<span class="keyword">const</span> <a class="code hl_struct" href="structFrameKey.html">FrameKey</a> &amp;key)<span class="keyword"> const </span>{</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keyword">const</span> std::size_t a = <span class="keyword">static_cast&lt;</span>std::size_t<span class="keyword">&gt;</span> (key.canId);</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> <span class="keyword">const</span> std::size_t b = key.isExtended ? 1U : 0U;</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="keywordflow">return</span> (a * 1315423911U) ^ b;</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>};</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="structDecodeDatabase.html"> 132</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structDecodeDatabase.html">DecodeDatabase</a> {</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> std::vector&lt;DecodeFrame&gt; frames;</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> std::unordered_map&lt;FrameKey, std::size_t, FrameKeyHasher&gt; frameIndexByKey;</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> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="preprocessor">#endif </span><span class="comment">/* DECODE_DATABASE_H */</span><span class="preprocessor"></span></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#l00023">decode_database.h:23</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#l00031">decode_database.h:31</a></div></div>
<div class="ttc" id="astructDecodeDatabase_html"><div class="ttname"><a href="structDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Runtime decode database with fast lookup by CAN ID.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00132">decode_database.h:132</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#l00072">decode_database.h:72</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#l00077">decode_database.h:77</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#l00078">decode_database.h:78</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#l00080">decode_database.h:80</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#l00075">decode_database.h:75</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#l00076">decode_database.h:76</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#l00074">decode_database.h:74</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#l00073">decode_database.h:73</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#l00079">decode_database.h:79</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#l00039">decode_database.h:39</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#l00047">decode_database.h:47</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#l00049">decode_database.h:49</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#l00045">decode_database.h:45</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#l00048">decode_database.h:48</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#l00040">decode_database.h:40</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#l00046">decode_database.h:46</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#l00044">decode_database.h:44</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#l00041">decode_database.h:41</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#l00050">decode_database.h:50</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#l00043">decode_database.h:43</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#l00042">decode_database.h:42</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#l00051">decode_database.h:51</a></div></div>
<div class="ttc" id="astructFrameKeyHasher_html"><div class="ttname"><a href="structFrameKeyHasher.html">FrameKeyHasher</a></div><div class="ttdoc">Hasher for frame key.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00121">decode_database.h:121</a></div></div>
<div class="ttc" id="astructFrameKey_html"><div class="ttname"><a href="structFrameKey.html">FrameKey</a></div><div class="ttdoc">Key for fast frame lookup.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00099">decode_database.h:99</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="decode__database_8h.html">decode_database.h</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.4 </li>
</ul>
</div>
</body>
</html>

BIN
docs/html/doc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 746 B

1841
docs/html/doxygen.css Normal file

File diff suppressed because it is too large Load Diff

26
docs/html/doxygen.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 15 KiB

128
docs/html/dynsections.js Normal file
View File

@@ -0,0 +1,128 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function toggleVisibility(linkObj)
{
var base = $(linkObj).attr('id');
var summary = $('#'+base+'-summary');
var content = $('#'+base+'-content');
var trigger = $('#'+base+'-trigger');
var src=$(trigger).attr('src');
if (content.is(':visible')===true) {
content.hide();
summary.show();
$(linkObj).addClass('closed').removeClass('opened');
$(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
content.show();
summary.hide();
$(linkObj).removeClass('closed').addClass('opened');
$(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
}
return false;
}
function updateStripes()
{
$('table.directory tr').
removeClass('even').filter(':visible:even').addClass('even');
}
function toggleLevel(level)
{
$('table.directory tr').each(function() {
var l = this.id.split('_').length-1;
var i = $('#img'+this.id.substring(3));
var a = $('#arr'+this.id.substring(3));
if (l<level+1) {
i.removeClass('iconfopen iconfclosed').addClass('iconfopen');
a.html('&#9660;');
$(this).show();
} else if (l==level+1) {
i.removeClass('iconfclosed iconfopen').addClass('iconfclosed');
a.html('&#9658;');
$(this).show();
} else {
$(this).hide();
}
});
updateStripes();
}
function toggleFolder(id)
{
// the clicked row
var currentRow = $('#row_'+id);
// all rows after the clicked row
var rows = currentRow.nextAll("tr");
var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
// only match elements AFTER this one (can't hide elements before)
var childRows = rows.filter(function() { return this.id.match(re); });
// first row is visible we are HIDING
if (childRows.filter(':first').is(':visible')===true) {
// replace down arrow by right arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
currentRowSpans.filter(".arrow").html('&#9658;');
rows.filter("[id^=row_"+id+"]").hide(); // hide all children
} else { // we are SHOWING
// replace right arrow by down arrow for current row
var currentRowSpans = currentRow.find("span");
currentRowSpans.filter(".iconfclosed").removeClass("iconfclosed").addClass("iconfopen");
currentRowSpans.filter(".arrow").html('&#9660;');
// replace down arrows by right arrows for child rows
var childRowsSpans = childRows.find("span");
childRowsSpans.filter(".iconfopen").removeClass("iconfopen").addClass("iconfclosed");
childRowsSpans.filter(".arrow").html('&#9658;');
childRows.show(); //show all children
}
updateStripes();
}
function toggleInherit(id)
{
var rows = $('tr.inherit.'+id);
var img = $('tr.inherit_header.'+id+' img');
var src = $(img).attr('src');
if (rows.filter(':first').is(':visible')===true) {
rows.css('display','none');
$(img).attr('src',src.substring(0,src.length-8)+'closed.png');
} else {
rows.css('display','table-row'); // using show() causes jump in firefox
$(img).attr('src',src.substring(0,src.length-10)+'open.png');
}
}
/* @license-end */
$(document).ready(function() {
$('.code,.codeRef').each(function() {
$(this).data('powertip',$('#a'+$(this).attr('href').replace(/.*\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());
$.fn.powerTip.smartPlacementLists.s = [ 's', 'n', 'ne', 'se' ];
$(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });
});
});

117
docs/html/files.html Normal file
View File

@@ -0,0 +1,117 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('files.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">File List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all documented files 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><a href="dbc__database_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__database_8h.html" target="_self">dbc_database.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc__decode__builder_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__decode__builder_8cpp.html" target="_self">dbc_decode_builder.cpp</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc__decode__builder_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__decode__builder_8h.html" target="_self">dbc_decode_builder.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc__decoder_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__decoder_8cpp.html" target="_self">dbc_decoder.cpp</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc__decoder_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__decoder_8h.html" target="_self">dbc_decoder.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc__parser_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__parser_8cpp.html" target="_self">dbc_parser.cpp</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc__parser_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__parser_8h.html" target="_self">dbc_parser.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc__tree__builder_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__tree__builder_8cpp.html" target="_self">dbc_tree_builder.cpp</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="dbc__tree__builder_8h_source.html"><span class="icondoc"></span></a><a class="el" href="dbc__tree__builder_8h.html" target="_self">dbc_tree_builder.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="decode__database_8h_source.html"><span class="icondoc"></span></a><a class="el" href="decode__database_8h.html" target="_self">decode_database.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="frame__info_8h_source.html"><span class="icondoc"></span></a><a class="el" href="frame__info_8h.html" target="_self">frame_info.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="main_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="main_8cpp.html" target="_self">main.cpp</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="signal__info_8h_source.html"><span class="icondoc"></span></a><a class="el" href="signal__info_8h.html" target="_self">signal_info.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="tree__node_8cpp_source.html"><span class="icondoc"></span></a><a class="el" href="tree__node_8cpp.html" target="_self">tree_node.cpp</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="tree__node_8h_source.html"><span class="icondoc"></span></a><a class="el" href="tree__node_8h.html" target="_self">tree_node.h</a></td><td class="desc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro) </td></tr>
</table>
</div><!-- directory -->
</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.4 </li>
</ul>
</div>
</body>
</html>

18
docs/html/files_dup.js Normal file
View File

@@ -0,0 +1,18 @@
var files_dup =
[
[ "dbc_database.h", "dbc__database_8h.html", "dbc__database_8h" ],
[ "dbc_decode_builder.cpp", "dbc__decode__builder_8cpp.html", null ],
[ "dbc_decode_builder.h", "dbc__decode__builder_8h.html", "dbc__decode__builder_8h" ],
[ "dbc_decoder.cpp", "dbc__decoder_8cpp.html", null ],
[ "dbc_decoder.h", "dbc__decoder_8h.html", "dbc__decoder_8h" ],
[ "dbc_parser.cpp", "dbc__parser_8cpp.html", null ],
[ "dbc_parser.h", "dbc__parser_8h.html", "dbc__parser_8h" ],
[ "dbc_tree_builder.cpp", "dbc__tree__builder_8cpp.html", null ],
[ "dbc_tree_builder.h", "dbc__tree__builder_8h.html", "dbc__tree__builder_8h" ],
[ "decode_database.h", "decode__database_8h.html", "decode__database_8h" ],
[ "frame_info.h", "frame__info_8h.html", "frame__info_8h" ],
[ "main.cpp", "main_8cpp.html", null ],
[ "signal_info.h", "signal__info_8h.html", "signal__info_8h" ],
[ "tree_node.cpp", "tree__node_8cpp.html", null ],
[ "tree_node.h", "tree__node_8h.html", "tree__node_8h" ]
];

BIN
docs/html/folderclosed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 616 B

BIN
docs/html/folderopen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 597 B

View File

@@ -0,0 +1,122 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: frame_info.h File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('frame__info_8h.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> </div>
<div class="headertitle"><div class="title">frame_info.h File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;cstdint&gt;</code><br />
<code>#include &quot;<a class="el" href="signal__info_8h_source.html">signal_info.h</a>&quot;</code><br />
</div>
<p><a href="frame__info_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structFrameInfo.html">FrameInfo</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Describes one CAN frame from a DBC file. <a href="structFrameInfo.html#details">More...</a><br /></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>
<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="frame__info_8h_source.html">frame_info.h</a>.</p>
</div></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="frame__info_8h.html">frame_info.h</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var frame__info_8h =
[
[ "FrameInfo", "structFrameInfo.html", "structFrameInfo" ]
];

View File

@@ -0,0 +1,143 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: frame_info.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('frame__info_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">frame_info.h</div></div>
</div><!--header-->
<div class="contents">
<a href="frame__info_8h.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">#ifndef FRAME_INFO_H</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#define FRAME_INFO_H</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> </div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="signal__info_8h.html">signal_info.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"><a class="line" href="structFrameInfo.html"> 24</a></span><span class="keyword">struct </span><a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"><a class="line" href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"> 25</a></span> std::string <a class="code hl_variable" href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">name</a>; </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"><a class="line" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"> 26</a></span> std::uint32_t <a class="code hl_variable" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">canId</a>; </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"><a class="line" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"> 27</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">isExtended</a>; </div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"><a class="line" href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"> 28</a></span> std::uint32_t <a class="code hl_variable" href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">pgn</a>; </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"><a class="line" href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"> 29</a></span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">hasPgn</a>; </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"> 30</a></span> std::uint8_t <a class="code hl_variable" href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">dlc</a>; </div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"><a class="line" href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"> 31</a></span> std::string <a class="code hl_variable" href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">transmitter</a>; </div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"><a class="line" href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"> 32</a></span> std::string <a class="code hl_variable" href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">comment</a>; </div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084"> 33</a></span> std::vector&lt;SignalInfo&gt; signals; </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a>()</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> : <a class="code hl_variable" href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">name</a>()</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> , <a class="code hl_variable" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">canId</a> (0U)</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> , <a class="code hl_variable" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">isExtended</a> (false)</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> , <a class="code hl_variable" href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">pgn</a> (0U)</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> , <a class="code hl_variable" href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">hasPgn</a> (false)</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> , <a class="code hl_variable" href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">dlc</a> (0U)</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> , <a class="code hl_variable" href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">transmitter</a>()</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> , <a class="code hl_variable" href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">comment</a>()</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> , signals() {</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> }</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> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor">#endif </span><span class="comment">/* FRAME_INFO_H */</span><span class="preprocessor"></span></div>
<div class="ttc" id="asignal__info_8h_html"><div class="ttname"><a href="signal__info_8h.html">signal_info.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</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="astructFrameInfo_html_a34b726afaad2ac5c697fdb2ac070cdaf"><div class="ttname"><a href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">FrameInfo::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00027">frame_info.h:27</a></div></div>
<div class="ttc" id="astructFrameInfo_html_a4737a5420213ad4304724e39f3a4e55d"><div class="ttname"><a href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">FrameInfo::hasPgn</a></div><div class="ttdeci">bool hasPgn</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00029">frame_info.h:29</a></div></div>
<div class="ttc" id="astructFrameInfo_html_a92749ec3798d4211a505860fb389a9e8"><div class="ttname"><a href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">FrameInfo::transmitter</a></div><div class="ttdeci">std::string transmitter</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00031">frame_info.h:31</a></div></div>
<div class="ttc" id="astructFrameInfo_html_aa2b198ea0f55e560c123d35e7b3ecab9"><div class="ttname"><a href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">FrameInfo::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00030">frame_info.h:30</a></div></div>
<div class="ttc" id="astructFrameInfo_html_abb53a7f93ed7abc0ea1ae4a8ccafcdcb"><div class="ttname"><a href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">FrameInfo::name</a></div><div class="ttdeci">std::string name</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="astructFrameInfo_html_ace75121294f9d89b762080ab5643293c"><div class="ttname"><a href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">FrameInfo::comment</a></div><div class="ttdeci">std::string comment</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00032">frame_info.h:32</a></div></div>
<div class="ttc" id="astructFrameInfo_html_aee518b33f1000bf0b7f6e4a87474c943"><div class="ttname"><a href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">FrameInfo::pgn</a></div><div class="ttdeci">std::uint32_t pgn</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00028">frame_info.h:28</a></div></div>
<div class="ttc" id="astructFrameInfo_html_af470b0742c05bfbffc31c51a68f5c05e"><div class="ttname"><a href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">FrameInfo::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00026">frame_info.h:26</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="frame__info_8h.html">frame_info.h</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.4 </li>
</ul>
</div>
</body>
</html>

206
docs/html/functions.html Normal file
View File

@@ -0,0 +1,206 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Class Members</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('functions.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
<h3><a id="index_a" name="index_a"></a>- a -</h3><ul>
<li>AddChild()&#160;:&#160;<a class="el" href="classTreeNode.html#a6161f2ebb92184eab4215d121870e788">TreeNode</a></li>
</ul>
<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
<li>Build()&#160;:&#160;<a class="el" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">DbcDecodeBuilder</a>, <a class="el" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">DbcTreeBuilder</a></li>
<li>byteOrder&#160;:&#160;<a class="el" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">DecodeSignal</a></li>
</ul>
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>canId&#160;:&#160;<a class="el" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">FrameInfo</a>, <a class="el" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">RawCanFrame</a></li>
<li>comment&#160;:&#160;<a class="el" href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">DecodeFrame</a>, <a class="el" href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">DecodeSignal</a>, <a class="el" href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">FrameInfo</a>, <a class="el" href="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5">SignalInfo</a></li>
</ul>
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>data&#160;:&#160;<a class="el" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">RawCanFrame</a></li>
<li>Decode()&#160;:&#160;<a class="el" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder</a></li>
<li>definition&#160;:&#160;<a class="el" href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">DecodedFrameValue</a>, <a class="el" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">DecodedSignalValue</a></li>
<li>dlc&#160;:&#160;<a class="el" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">FrameInfo</a></li>
</ul>
<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>factor&#160;:&#160;<a class="el" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499">SignalInfo</a></li>
<li>FindFrame()&#160;:&#160;<a class="el" href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">DbcDecoder</a></li>
<li>frames&#160;:&#160;<a class="el" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">DbcDatabase</a></li>
</ul>
<h3><a id="index_g" name="index_g"></a>- g -</h3><ul>
<li>GetChild()&#160;:&#160;<a class="el" href="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6">TreeNode</a></li>
<li>GetChildCount()&#160;:&#160;<a class="el" href="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea">TreeNode</a></li>
<li>GetFrame()&#160;:&#160;<a class="el" href="classTreeNode.html#afc503b40004764163605d6dbdb4ef811">TreeNode</a></li>
<li>GetName()&#160;:&#160;<a class="el" href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">TreeNode</a></li>
<li>GetSignal()&#160;:&#160;<a class="el" href="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1">TreeNode</a></li>
<li>GetType()&#160;:&#160;<a class="el" href="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9">TreeNode</a></li>
</ul>
<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>hasPgn&#160;:&#160;<a class="el" href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">FrameInfo</a></li>
</ul>
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>isExtended&#160;:&#160;<a class="el" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">FrameInfo</a>, <a class="el" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">RawCanFrame</a></li>
<li>isLittleEndian&#160;:&#160;<a class="el" href="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c">SignalInfo</a></li>
<li>isSigned&#160;:&#160;<a class="el" href="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f">SignalInfo</a></li>
</ul>
<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>length&#160;:&#160;<a class="el" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa">SignalInfo</a></li>
</ul>
<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>maximum&#160;:&#160;<a class="el" href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52">SignalInfo</a></li>
<li>minimum&#160;:&#160;<a class="el" href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b">SignalInfo</a></li>
</ul>
<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
<li>name&#160;:&#160;<a class="el" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">DecodeFrame</a>, <a class="el" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">DecodeSignal</a>, <a class="el" href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">FrameInfo</a>, <a class="el" href="structSignalInfo.html#a379e422a00cad56f896cacf60455b088">SignalInfo</a></li>
</ul>
<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
<li>offset&#160;:&#160;<a class="el" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e">SignalInfo</a></li>
</ul>
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>ParseFile()&#160;:&#160;<a class="el" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">DbcParser</a></li>
<li>pgn&#160;:&#160;<a class="el" href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">FrameInfo</a></li>
<li>physicalValue&#160;:&#160;<a class="el" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">DecodedSignalValue</a></li>
<li>public&#160;:&#160;<a class="el" href="structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8">DecodedFrameValue</a>, <a class="el" href="structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084">FrameInfo</a></li>
</ul>
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>rawValue&#160;:&#160;<a class="el" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">DecodedSignalValue</a></li>
<li>receivers&#160;:&#160;<a class="el" href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3">SignalInfo</a></li>
</ul>
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>startBit&#160;:&#160;<a class="el" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#ace290724f9801521609aedaa946d61f1">SignalInfo</a></li>
</ul>
<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>transmitter&#160;:&#160;<a class="el" href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">FrameInfo</a></li>
<li>TreeNode()&#160;:&#160;<a class="el" href="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d">TreeNode</a></li>
</ul>
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>unit&#160;:&#160;<a class="el" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01">SignalInfo</a></li>
</ul>
<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
<li>valid&#160;:&#160;<a class="el" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">DecodedFrameValue</a>, <a class="el" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">DecodedSignalValue</a></li>
<li>valueType&#160;:&#160;<a class="el" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">DecodeSignal</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="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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,109 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Class Members - Functions</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('functions_func.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>AddChild()&#160;:&#160;<a class="el" href="classTreeNode.html#a6161f2ebb92184eab4215d121870e788">TreeNode</a></li>
<li>Build()&#160;:&#160;<a class="el" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">DbcDecodeBuilder</a>, <a class="el" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">DbcTreeBuilder</a></li>
<li>Decode()&#160;:&#160;<a class="el" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">DbcDecoder</a></li>
<li>FindFrame()&#160;:&#160;<a class="el" href="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da">DbcDecoder</a></li>
<li>GetChild()&#160;:&#160;<a class="el" href="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6">TreeNode</a></li>
<li>GetChildCount()&#160;:&#160;<a class="el" href="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea">TreeNode</a></li>
<li>GetFrame()&#160;:&#160;<a class="el" href="classTreeNode.html#afc503b40004764163605d6dbdb4ef811">TreeNode</a></li>
<li>GetName()&#160;:&#160;<a class="el" href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">TreeNode</a></li>
<li>GetSignal()&#160;:&#160;<a class="el" href="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1">TreeNode</a></li>
<li>GetType()&#160;:&#160;<a class="el" href="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9">TreeNode</a></li>
<li>ParseFile()&#160;:&#160;<a class="el" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">DbcParser</a></li>
<li>TreeNode()&#160;:&#160;<a class="el" href="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d">TreeNode</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="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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,186 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Class Members - Variables</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('functions_vars.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;
<h3><a id="index_b" name="index_b"></a>- b -</h3><ul>
<li>byteOrder&#160;:&#160;<a class="el" href="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d">DecodeSignal</a></li>
</ul>
<h3><a id="index_c" name="index_c"></a>- c -</h3><ul>
<li>canId&#160;:&#160;<a class="el" href="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">FrameInfo</a>, <a class="el" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">RawCanFrame</a></li>
<li>comment&#160;:&#160;<a class="el" href="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22">DecodeFrame</a>, <a class="el" href="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473">DecodeSignal</a>, <a class="el" href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">FrameInfo</a>, <a class="el" href="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5">SignalInfo</a></li>
</ul>
<h3><a id="index_d" name="index_d"></a>- d -</h3><ul>
<li>data&#160;:&#160;<a class="el" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">RawCanFrame</a></li>
<li>definition&#160;:&#160;<a class="el" href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">DecodedFrameValue</a>, <a class="el" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">DecodedSignalValue</a></li>
<li>dlc&#160;:&#160;<a class="el" href="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">FrameInfo</a></li>
</ul>
<h3><a id="index_f" name="index_f"></a>- f -</h3><ul>
<li>factor&#160;:&#160;<a class="el" href="structDecodeSignal.html#a428c39913a366a8476dd291061354391">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499">SignalInfo</a></li>
<li>frames&#160;:&#160;<a class="el" href="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b">DbcDatabase</a></li>
</ul>
<h3><a id="index_h" name="index_h"></a>- h -</h3><ul>
<li>hasPgn&#160;:&#160;<a class="el" href="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">FrameInfo</a></li>
</ul>
<h3><a id="index_i" name="index_i"></a>- i -</h3><ul>
<li>isExtended&#160;:&#160;<a class="el" href="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">FrameInfo</a>, <a class="el" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">RawCanFrame</a></li>
<li>isLittleEndian&#160;:&#160;<a class="el" href="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c">SignalInfo</a></li>
<li>isSigned&#160;:&#160;<a class="el" href="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f">SignalInfo</a></li>
</ul>
<h3><a id="index_l" name="index_l"></a>- l -</h3><ul>
<li>length&#160;:&#160;<a class="el" href="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa">SignalInfo</a></li>
</ul>
<h3><a id="index_m" name="index_m"></a>- m -</h3><ul>
<li>maximum&#160;:&#160;<a class="el" href="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52">SignalInfo</a></li>
<li>minimum&#160;:&#160;<a class="el" href="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b">SignalInfo</a></li>
</ul>
<h3><a id="index_n" name="index_n"></a>- n -</h3><ul>
<li>name&#160;:&#160;<a class="el" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">DecodeFrame</a>, <a class="el" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">DecodeSignal</a>, <a class="el" href="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb">FrameInfo</a>, <a class="el" href="structSignalInfo.html#a379e422a00cad56f896cacf60455b088">SignalInfo</a></li>
</ul>
<h3><a id="index_o" name="index_o"></a>- o -</h3><ul>
<li>offset&#160;:&#160;<a class="el" href="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e">SignalInfo</a></li>
</ul>
<h3><a id="index_p" name="index_p"></a>- p -</h3><ul>
<li>pgn&#160;:&#160;<a class="el" href="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">FrameInfo</a></li>
<li>physicalValue&#160;:&#160;<a class="el" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">DecodedSignalValue</a></li>
<li>public&#160;:&#160;<a class="el" href="structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8">DecodedFrameValue</a>, <a class="el" href="structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084">FrameInfo</a></li>
</ul>
<h3><a id="index_r" name="index_r"></a>- r -</h3><ul>
<li>rawValue&#160;:&#160;<a class="el" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">DecodedSignalValue</a></li>
<li>receivers&#160;:&#160;<a class="el" href="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3">SignalInfo</a></li>
</ul>
<h3><a id="index_s" name="index_s"></a>- s -</h3><ul>
<li>startBit&#160;:&#160;<a class="el" href="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#ace290724f9801521609aedaa946d61f1">SignalInfo</a></li>
</ul>
<h3><a id="index_t" name="index_t"></a>- t -</h3><ul>
<li>transmitter&#160;:&#160;<a class="el" href="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9">DecodeFrame</a>, <a class="el" href="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8">FrameInfo</a></li>
</ul>
<h3><a id="index_u" name="index_u"></a>- u -</h3><ul>
<li>unit&#160;:&#160;<a class="el" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">DecodeSignal</a>, <a class="el" href="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01">SignalInfo</a></li>
</ul>
<h3><a id="index_v" name="index_v"></a>- v -</h3><ul>
<li>valid&#160;:&#160;<a class="el" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">DecodedFrameValue</a>, <a class="el" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">DecodedSignalValue</a></li>
<li>valueType&#160;:&#160;<a class="el" href="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8">DecodeSignal</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="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.4 </li>
</ul>
</div>
</body>
</html>

100
docs/html/globals.html Normal file
View File

@@ -0,0 +1,100 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: File Members</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('globals.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
<div class="textblock">Here is a list of all documented file members with links to the documentation:</div><ul>
<li>ByteOrder&#160;:&#160;<a class="el" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">decode_database.h</a></li>
<li>NodeType&#160;:&#160;<a class="el" href="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16">tree_node.h</a></li>
<li>ValueType&#160;:&#160;<a class="el" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">decode_database.h</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="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.4 </li>
</ul>
</div>
</body>
</html>

100
docs/html/globals_enum.html Normal file
View File

@@ -0,0 +1,100 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: File Members</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('globals_enum.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="contents">
&#160;<ul>
<li>ByteOrder&#160;:&#160;<a class="el" href="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">decode_database.h</a></li>
<li>NodeType&#160;:&#160;<a class="el" href="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16">tree_node.h</a></li>
<li>ValueType&#160;:&#160;<a class="el" href="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">decode_database.h</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="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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,65 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC framework: File Members</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="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>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li class="current"><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;<ul>
<li>main()&#160;:&#160;<a class="el" href="main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main.cpp</a></li>
<li>PrintDecodedFrame()&#160;:&#160;<a class="el" href="main_8cpp.html#a26dbbea5b56e3fbc451b68f217d5063f">main.cpp</a></li>
<li>PrintTree()&#160;:&#160;<a class="el" href="main_8cpp.html#a57aefef9cfd52a8190df002e12808e0a">main.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 14 2026 20:49:34 for DBC framework by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>

158
docs/html/graph_legend.html Normal file
View File

@@ -0,0 +1,158 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Graph Legend</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('graph_legend.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">Graph Legend</div></div>
</div><!--header-->
<div class="contents">
<p >This page explains how to interpret the graphs that are generated by doxygen.</p>
<p >Consider the following example: </p><div class="fragment"><div class="line"><span class="comment">/*! Invisible class because of truncation */</span></div>
<div class="line"><span class="keyword">class </span>Invisible { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Truncated class, inheritance relation is hidden */</span></div>
<div class="line"><span class="keyword">class </span>Truncated : <span class="keyword">public</span> Invisible { };</div>
<div class="line"> </div>
<div class="line"><span class="comment">/* Class not documented with doxygen comments */</span></div>
<div class="line"><span class="keyword">class </span>Undocumented { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using public inheritance */</span></div>
<div class="line"><span class="keyword">class </span>PublicBase : <span class="keyword">public</span> Truncated { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! A template class */</span></div>
<div class="line"><span class="keyword">template</span>&lt;<span class="keyword">class</span> T&gt; <span class="keyword">class </span>Templ { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using protected inheritance */</span></div>
<div class="line"><span class="keyword">class </span>ProtectedBase { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is inherited using private inheritance */</span></div>
<div class="line"><span class="keyword">class </span>PrivateBase { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Class that is used by the Inherited class */</span></div>
<div class="line"><span class="keyword">class </span>Used { };</div>
<div class="line"><span class="comment"></span> </div>
<div class="line"><span class="comment">/*! Super class that inherits a number of other classes */</span></div>
<div class="line"><span class="keyword">class </span>Inherited : <span class="keyword">public</span> PublicBase,</div>
<div class="line"> <span class="keyword">protected</span> ProtectedBase,</div>
<div class="line"> <span class="keyword">private</span> PrivateBase,</div>
<div class="line"> <span class="keyword">public</span> Undocumented,</div>
<div class="line"> <span class="keyword">public</span> Templ&lt;int&gt;</div>
<div class="line">{</div>
<div class="line"> <span class="keyword">private</span>:</div>
<div class="line"> Used *m_usedClass;</div>
<div class="line">};</div>
</div><!-- fragment --><p> This will result in the following graph:</p>
<center><iframe scrolling="no" frameborder="0" src="graph_legend.svg" width="726" height="212"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe> </center><p >The boxes in the above graph have the following meaning: </p>
<ul>
<li>
A filled gray box represents the struct or class for which the graph is generated. </li>
<li>
A box with a black border denotes a documented struct or class. </li>
<li>
A box with a gray border denotes an undocumented struct or class. </li>
<li>
A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries. </li>
</ul>
<p >The arrows have the following meaning: </p>
<ul>
<li>
A dark blue arrow is used to visualize a public inheritance relation between two classes. </li>
<li>
A dark green arrow is used for protected inheritance. </li>
<li>
A dark red arrow is used for private inheritance. </li>
<li>
A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible. </li>
<li>
A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance. </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="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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1 @@
2949d8d683b49299ad5e82dbf5d1be6c

117
docs/html/graph_legend.svg Normal file
View File

@@ -0,0 +1,117 @@
<?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.43.0 (0)
-->
<!-- Title: Graph Legend Pages: 1 -->
<svg width="544pt" height="159pt"
viewBox="0.00 0.00 543.50 159.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 155)">
<title>Graph Legend</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-155 539.5,-155 539.5,4 -4,4"/>
<!-- Node9 -->
<g id="node1" class="node">
<title>Node9</title>
<polygon fill="#bfbfbf" stroke="black" points="311,-19 251,-19 251,0 311,0 311,-19"/>
<text text-anchor="middle" x="281" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">Inherited</text>
</g>
<!-- Node10 -->
<g id="node2" class="node">
<title>Node10</title>
<polygon fill="none" stroke="black" points="70,-85 0,-85 0,-66 70,-66 70,-85"/>
<text text-anchor="middle" x="35" y="-73" font-family="Helvetica,sans-Serif" font-size="10.00">PublicBase</text>
</g>
<!-- Node10&#45;&gt;Node9 -->
<g id="edge1" class="edge">
<title>Node10&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M77.7,-63.39C127.22,-50.51 207.6,-29.59 250.97,-18.31"/>
<polygon fill="midnightblue" stroke="midnightblue" points="76.72,-60.03 67.92,-65.94 78.48,-66.8 76.72,-60.03"/>
</g>
<!-- Node11 -->
<g id="node3" class="node">
<title>Node11</title>
<polygon fill="none" stroke="red" points="67,-151 3,-151 3,-132 67,-132 67,-151"/>
<text text-anchor="middle" x="35" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">Truncated</text>
</g>
<!-- Node11&#45;&gt;Node10 -->
<g id="edge2" class="edge">
<title>Node11&#45;&gt;Node10</title>
<path fill="none" stroke="midnightblue" d="M35,-121.58C35,-109.63 35,-94.72 35,-85.41"/>
<polygon fill="midnightblue" stroke="midnightblue" points="31.5,-121.87 35,-131.87 38.5,-121.87 31.5,-121.87"/>
</g>
<!-- Node13 -->
<g id="node4" class="node">
<title>Node13</title>
<polygon fill="none" stroke="black" points="175.5,-85 88.5,-85 88.5,-66 175.5,-66 175.5,-85"/>
<text text-anchor="middle" x="132" y="-73" font-family="Helvetica,sans-Serif" font-size="10.00">ProtectedBase</text>
</g>
<!-- Node13&#45;&gt;Node9 -->
<g id="edge3" class="edge">
<title>Node13&#45;&gt;Node9</title>
<path fill="none" stroke="darkgreen" d="M161.43,-61.86C190.79,-49.25 235.12,-30.21 260.75,-19.2"/>
<polygon fill="darkgreen" stroke="darkgreen" points="159.9,-58.71 152.09,-65.87 162.66,-65.14 159.9,-58.71"/>
</g>
<!-- Node14 -->
<g id="node5" class="node">
<title>Node14</title>
<polygon fill="none" stroke="black" points="268.5,-85 193.5,-85 193.5,-66 268.5,-66 268.5,-85"/>
<text text-anchor="middle" x="231" y="-73" font-family="Helvetica,sans-Serif" font-size="10.00">PrivateBase</text>
</g>
<!-- Node14&#45;&gt;Node9 -->
<g id="edge4" class="edge">
<title>Node14&#45;&gt;Node9</title>
<path fill="none" stroke="#8b1a1a" d="M244.07,-57.77C253.66,-45.49 266.31,-29.3 274.04,-19.41"/>
<polygon fill="#8b1a1a" stroke="#8b1a1a" points="241.14,-55.83 237.74,-65.87 246.66,-60.14 241.14,-55.83"/>
</g>
<!-- Node15 -->
<g id="node6" class="node">
<title>Node15</title>
<polygon fill="none" stroke="#bfbfbf" points="377.5,-85 286.5,-85 286.5,-66 377.5,-66 377.5,-85"/>
<text text-anchor="middle" x="332" y="-73" font-family="Helvetica,sans-Serif" font-size="10.00">Undocumented</text>
</g>
<!-- Node15&#45;&gt;Node9 -->
<g id="edge5" class="edge">
<title>Node15&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M318.67,-57.77C308.88,-45.49 295.98,-29.3 288.1,-19.41"/>
<polygon fill="midnightblue" stroke="midnightblue" points="316.15,-60.23 325.12,-65.87 321.63,-55.87 316.15,-60.23"/>
</g>
<!-- Node16 -->
<g id="node7" class="node">
<title>Node16</title>
<polygon fill="none" stroke="black" points="476.5,-85 395.5,-85 395.5,-66 476.5,-66 476.5,-85"/>
<text text-anchor="middle" x="436" y="-73" font-family="Helvetica,sans-Serif" font-size="10.00">Templ&lt; int &gt;</text>
</g>
<!-- Node16&#45;&gt;Node9 -->
<g id="edge6" class="edge">
<title>Node16&#45;&gt;Node9</title>
<path fill="none" stroke="midnightblue" d="M405.78,-62.02C375.24,-49.41 328.84,-30.25 302.07,-19.2"/>
<polygon fill="midnightblue" stroke="midnightblue" points="404.52,-65.29 415.1,-65.87 407.19,-58.82 404.52,-65.29"/>
</g>
<!-- Node17 -->
<g id="node8" class="node">
<title>Node17</title>
<polygon fill="none" stroke="black" points="473,-151 399,-151 399,-132 473,-132 473,-151"/>
<text text-anchor="middle" x="436" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">Templ&lt; T &gt;</text>
</g>
<!-- Node17&#45;&gt;Node16 -->
<g id="edge7" class="edge">
<title>Node17&#45;&gt;Node16</title>
<path fill="none" stroke="orange" stroke-dasharray="5,2" d="M436,-121.58C436,-109.63 436,-94.72 436,-85.41"/>
<polygon fill="orange" stroke="orange" points="432.5,-121.87 436,-131.87 439.5,-121.87 432.5,-121.87"/>
<text text-anchor="middle" x="454" y="-106" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; int &gt;</text>
</g>
<!-- Node18 -->
<g id="node9" class="node">
<title>Node18</title>
<polygon fill="none" stroke="black" points="535.5,-85 494.5,-85 494.5,-66 535.5,-66 535.5,-85"/>
<text text-anchor="middle" x="515" y="-73" font-family="Helvetica,sans-Serif" font-size="10.00">Used</text>
</g>
<!-- Node18&#45;&gt;Node9 -->
<g id="edge8" class="edge">
<title>Node18&#45;&gt;Node9</title>
<path fill="none" stroke="#9a32cd" stroke-dasharray="5,2" d="M484.52,-65.62C417.32,-46.74 349.44,-28.6 311.27,-18.49"/>
<polygon fill="#9a32cd" stroke="#9a32cd" points="483.85,-69.07 494.42,-68.41 485.74,-62.33 483.85,-69.07"/>
<text text-anchor="middle" x="450.5" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00">m_usedClass</text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.7 KiB

496
docs/html/index.hhc Normal file
View File

@@ -0,0 +1,496 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML><HEAD></HEAD><BODY>
<OBJECT type="text/site properties">
<param name="FrameName" value="right">
</OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DBC Parser and Runtime Decode Module Documentation"><param name="Local" value="md_README.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Overview"><param name="Local" value="md_README.html#autotoc_md1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="High-Level Architecture"><param name="Local" value="md_README.html#autotoc_md3"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="1. Parse and UI path"><param name="Local" value="md_README.html#autotoc_md4"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="2. Runtime decode path"><param name="Local" value="md_README.html#autotoc_md5"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Why the Runtime Decode Layer Exists"><param name="Local" value="md_README.html#autotoc_md7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Module Layout"><param name="Local" value="md_README.html#autotoc_md9"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Parsed DBC structures"><param name="Local" value="md_README.html#autotoc_md10"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="UI tree structures"><param name="Local" value="md_README.html#autotoc_md11"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Runtime decode structures"><param name="Local" value="md_README.html#autotoc_md12"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Runtime decoder"><param name="Local" value="md_README.html#autotoc_md13"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Parser"><param name="Local" value="md_README.html#autotoc_md14"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Demo"><param name="Local" value="md_README.html#autotoc_md15"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Parsed Data Structures"><param name="Local" value="md_README.html#autotoc_md17"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;SignalInfo&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md18"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;FrameInfo&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md20"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;DbcDatabase&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md22"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="UI Tree Layer"><param name="Local" value="md_README.html#autotoc_md24"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;TreeNode&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md25"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Runtime Decode Layer"><param name="Local" value="md_README.html#autotoc_md27"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Purpose"><param name="Local" value="md_README.html#autotoc_md28"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;ByteOrder&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md30"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;ValueType&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md32"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;DecodeSignal&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md34"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;DecodeFrame&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md36"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;FrameKey&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md38"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;DecodeDatabase&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md40"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Decoder Layer"><param name="Local" value="md_README.html#autotoc_md42"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;RawCanFrame&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md43"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;DecodedSignalValue&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md45"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;DecodedFrameValue&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md47"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="&lt;tt&gt;DbcDecoder&lt;/tt&gt;"><param name="Local" value="md_README.html#autotoc_md49"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Parser Support"><param name="Local" value="md_README.html#autotoc_md51"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Supported DBC Syntax"><param name="Local" value="md_README.html#autotoc_md53"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Frame definition"><param name="Local" value="md_README.html#autotoc_md54"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Signal definition"><param name="Local" value="md_README.html#autotoc_md56"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Comments"><param name="Local" value="md_README.html#autotoc_md58"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="CAN ID Normalization"><param name="Local" value="md_README.html#autotoc_md60"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="PGN Extraction"><param name="Local" value="md_README.html#autotoc_md62"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Decode Flow"><param name="Local" value="md_README.html#autotoc_md64"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Intel and Motorola Extraction"><param name="Local" value="md_README.html#autotoc_md66"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Example Usage"><param name="Local" value="md_README.html#autotoc_md68"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Parse DBC"><param name="Local" value="md_README.html#autotoc_md69"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Build UI tree"><param name="Local" value="md_README.html#autotoc_md70"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Build runtime decode database"><param name="Local" value="md_README.html#autotoc_md71"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Decode a raw frame"><param name="Local" value="md_README.html#autotoc_md72"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Unified Decode Strategy"><param name="Local" value="md_README.html#autotoc_md74"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="live path"><param name="Local" value="md_README.html#autotoc_md75"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="trace path"><param name="Local" value="md_README.html#autotoc_md76"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Intended Use in FrameTap"><param name="Local" value="md_README.html#autotoc_md78"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Why the Tree Is Not Enough"><param name="Local" value="md_README.html#autotoc_md80"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Why No Abstract Factory Is Used"><param name="Local" value="md_README.html#autotoc_md82"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Current Limitations"><param name="Local" value="md_README.html#autotoc_md84"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Recommended Next Steps"><param name="Local" value="md_README.html#autotoc_md86"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Stage 1 - already implemented"><param name="Local" value="md_README.html#autotoc_md87"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Stage 2"><param name="Local" value="md_README.html#autotoc_md88"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Stage 3"><param name="Local" value="md_README.html#autotoc_md89"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Stage 4"><param name="Local" value="md_README.html#autotoc_md90"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Build Integration"><param name="Local" value="md_README.html#autotoc_md92"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Summary"><param name="Local" value="md_README.html#autotoc_md94"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Parsed representation"><param name="Local" value="md_README.html#autotoc_md95"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Runtime decode representation"><param name="Local" value="md_README.html#autotoc_md96"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Namespaces"><param name="Local" value="namespaces.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Namespace List"><param name="Local" value="namespaces.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="anonymous_namespace{dbc_parser.cpp}"><param name="Local" value="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TrimText"><param name="Local" value="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html#a5850f07ce5f4e5c4f3bf385ebcfcebbb"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Namespace Members"><param name="Local" value="namespacemembers.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="All"><param name="Local" value="namespacemembers.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Functions"><param name="Local" value="namespacemembers_func.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Classes"><param name="Local" value="annotated.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class List"><param name="Local" value="annotated.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcDatabase"><param name="Local" value="structDbcDatabase.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="frames"><param name="Local" value="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcDecodeBuilder"><param name="Local" value="classDbcDecodeBuilder.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Build"><param name="Local" value="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcDecoder"><param name="Local" value="classDbcDecoder.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Decode"><param name="Local" value="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ExtractIntel"><param name="Local" value="classDbcDecoder.html#aba130165c1a73bb4cd3a0454f415d872"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ExtractMotorola"><param name="Local" value="classDbcDecoder.html#aede690734148c3d538105d5a2f7ee0a9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ExtractUnsigned"><param name="Local" value="classDbcDecoder.html#a2a8a99b1107543be6fd1b3f891130bf5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FindFrame"><param name="Local" value="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SignExtend"><param name="Local" value="classDbcDecoder.html#a41e89e343338088d27e46773fa52df42"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcParser"><param name="Local" value="classDbcParser.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FindFrameById"><param name="Local" value="classDbcParser.html#ab1fee32cb845573ce10949b4bec721f9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FindSignalByName"><param name="Local" value="classDbcParser.html#ab7b95be4433c56cc855bedb08b96a71a"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="IsCommentLine"><param name="Local" value="classDbcParser.html#ae3488a0a6c64dc95e4ed289e77579feb"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="IsFrameLine"><param name="Local" value="classDbcParser.html#ada086584d371c08dd93b75fb7965f13b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="IsSignalLine"><param name="Local" value="classDbcParser.html#ace3d3432a55707bc286a994aa205fed1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="NormalizeCanId"><param name="Local" value="classDbcParser.html#a94d140d9442e4989b5b2ea7662c2debf"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ParseCommentLine"><param name="Local" value="classDbcParser.html#aa662b34694fd8b3edd757f36cb064c5c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ParseFile"><param name="Local" value="classDbcParser.html#aef72826942c9095d653fafa435855e56"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ParseFrameLine"><param name="Local" value="classDbcParser.html#a6d73bb1885e59aecd8202e93a7cd392a"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ParseSignalLine"><param name="Local" value="classDbcParser.html#a4cbce88d08b1f72903ecf1bce41de5d2"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SplitReceivers"><param name="Local" value="classDbcParser.html#a0c1cc3c58f33473bf426a77b7a25c529"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Trim"><param name="Local" value="classDbcParser.html#a1ae77c4c356af3d7b01a30044366f02b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TryExtractPgn"><param name="Local" value="classDbcParser.html#a8a7e8fc517e40beab87a8a1dbad2b324"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcTreeBuilder"><param name="Local" value="classDbcTreeBuilder.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Build"><param name="Local" value="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeDatabase"><param name="Local" value="structDecodeDatabase.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="frameIndexByKey"><param name="Local" value="structDecodeDatabase.html#ae4fd1351008bb0dce337821a849100c5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="frames"><param name="Local" value="structDecodeDatabase.html#a2bd4ddfc2602c1de4e12a373bfc93072"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodedFrameValue"><param name="Local" value="structDecodedFrameValue.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodedFrameValue"><param name="Local" value="structDecodedFrameValue.html#a19f754bb84e67e6ae71ea93b9ae6382b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="definition"><param name="Local" value="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="signals"><param name="Local" value="structDecodedFrameValue.html#a8440e0e5d7953102095b029f522022d3"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="valid"><param name="Local" value="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodedSignalValue"><param name="Local" value="structDecodedSignalValue.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodedSignalValue"><param name="Local" value="structDecodedSignalValue.html#a1481b122a7ce5a618012b1133c6adedf"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="definition"><param name="Local" value="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="physicalValue"><param name="Local" value="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="rawValue"><param name="Local" value="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="valid"><param name="Local" value="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeFrame"><param name="Local" value="structDecodeFrame.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeFrame"><param name="Local" value="structDecodeFrame.html#ae6ae88ee29bcaff936e7c7b2380f96b4"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="canId"><param name="Local" value="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="comment"><param name="Local" value="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dlc"><param name="Local" value="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="hasPgn"><param name="Local" value="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isExtended"><param name="Local" value="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="name"><param name="Local" value="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="pgn"><param name="Local" value="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="signals"><param name="Local" value="structDecodeFrame.html#a372afd9e74f1ae33f85cb4acfd3e2036"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="transmitter"><param name="Local" value="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeSignal"><param name="Local" value="structDecodeSignal.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeSignal"><param name="Local" value="structDecodeSignal.html#a93fd97267e2614979440261628e493f5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="byteOrder"><param name="Local" value="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="comment"><param name="Local" value="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="factor"><param name="Local" value="structDecodeSignal.html#a428c39913a366a8476dd291061354391"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="length"><param name="Local" value="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="maximum"><param name="Local" value="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="minimum"><param name="Local" value="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="name"><param name="Local" value="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="offset"><param name="Local" value="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="receivers"><param name="Local" value="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="startBit"><param name="Local" value="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="unit"><param name="Local" value="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="valueType"><param name="Local" value="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameInfo"><param name="Local" value="structFrameInfo.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameInfo"><param name="Local" value="structFrameInfo.html#a7f2d192b7969f7b60479a48e1f7eba61"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="canId"><param name="Local" value="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="comment"><param name="Local" value="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dlc"><param name="Local" value="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="hasPgn"><param name="Local" value="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isExtended"><param name="Local" value="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="name"><param name="Local" value="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="pgn"><param name="Local" value="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="signals"><param name="Local" value="structFrameInfo.html#a942937027f1af06536f98cc23b2bf6ce"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="transmitter"><param name="Local" value="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameKey"><param name="Local" value="structFrameKey.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameKey"><param name="Local" value="structFrameKey.html#a0e9aad56b251cdf802d45a9c19050b14"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameKey"><param name="Local" value="structFrameKey.html#a33bde405c7ea53000d54b3dd6e058670"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator=="><param name="Local" value="structFrameKey.html#aaaec9f914e127787247fcda5e183b01f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="canId"><param name="Local" value="structFrameKey.html#a022917652b4d3c2f2dfcc5a13ab7caa4"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isExtended"><param name="Local" value="structFrameKey.html#aa3179b709d02ef70cf0e736f040a2145"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameKeyHasher"><param name="Local" value="structFrameKeyHasher.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator()"><param name="Local" value="structFrameKeyHasher.html#a1612ce56b513790e3ed4c06ec7d28b9f"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="RawCanFrame"><param name="Local" value="structRawCanFrame.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="RawCanFrame"><param name="Local" value="structRawCanFrame.html#a17d18b39bed45e69f4e17ae2838f07f7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="canId"><param name="Local" value="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="data"><param name="Local" value="structRawCanFrame.html#a0acb487612104c99c9907344c035df83"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isExtended"><param name="Local" value="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SignalInfo"><param name="Local" value="structSignalInfo.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SignalInfo"><param name="Local" value="structSignalInfo.html#aa2d2cd238118015258e271dce92a971e"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="comment"><param name="Local" value="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="factor"><param name="Local" value="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isLittleEndian"><param name="Local" value="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isSigned"><param name="Local" value="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="length"><param name="Local" value="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="maximum"><param name="Local" value="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="minimum"><param name="Local" value="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="name"><param name="Local" value="structSignalInfo.html#a379e422a00cad56f896cacf60455b088"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="offset"><param name="Local" value="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="receivers"><param name="Local" value="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="startBit"><param name="Local" value="structSignalInfo.html#ace290724f9801521609aedaa946d61f1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="unit"><param name="Local" value="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="~TreeNode"><param name="Local" value="classTreeNode.html#a89eb1eb0e25fccaa83c780b85f95b570"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#a4d3054a033accf3e38ea132002fc35ff"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#a35724af755b5d0c43de40a723ef81ec1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="AddChild"><param name="Local" value="classTreeNode.html#a6161f2ebb92184eab4215d121870e788"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetChild"><param name="Local" value="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetChild"><param name="Local" value="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetChildCount"><param name="Local" value="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetFrame"><param name="Local" value="classTreeNode.html#afc503b40004764163605d6dbdb4ef811"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetName"><param name="Local" value="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetSignal"><param name="Local" value="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetType"><param name="Local" value="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator="><param name="Local" value="classTreeNode.html#ad6ce97dcf532b452d520452b6d000daa"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator="><param name="Local" value="classTreeNode.html#a88fbcbec9c64d888b19c5edb95059a95"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_children"><param name="Local" value="classTreeNode.html#a1bd61f40df6d36e61021063e3816a351"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_frame"><param name="Local" value="classTreeNode.html#a77ee6aa80774d67ba442a66b45c798c2"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_name"><param name="Local" value="classTreeNode.html#ac0ddcb8370e6b51e2d3de6b8211a47f8"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_signal"><param name="Local" value="classTreeNode.html#ae658355007bc9303f7bfae3bb3ec8386"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_type"><param name="Local" value="classTreeNode.html#a04bccab9e60a6a78777cd7dfec52d224"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class Index"><param name="Local" value="classes.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Class Members"><param name="Local" value="functions.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="All"><param name="Local" value="functions.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Functions"><param name="Local" value="functions_func.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Variables"><param name="Local" value="functions_vars.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Files"><param name="Local" value="files.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="File List"><param name="Local" value="files.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_database.h"><param name="Local" value="dbc__database_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcDatabase"><param name="Local" value="structDbcDatabase.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="frames"><param name="Local" value="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_decode_builder.cpp"><param name="Local" value="dbc__decode__builder_8cpp.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_decode_builder.h"><param name="Local" value="dbc__decode__builder_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcDecodeBuilder"><param name="Local" value="classDbcDecodeBuilder.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Build"><param name="Local" value="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_decoder.cpp"><param name="Local" value="dbc__decoder_8cpp.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_decoder.h"><param name="Local" value="dbc__decoder_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="RawCanFrame"><param name="Local" value="structRawCanFrame.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="RawCanFrame"><param name="Local" value="structRawCanFrame.html#a17d18b39bed45e69f4e17ae2838f07f7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="canId"><param name="Local" value="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="data"><param name="Local" value="structRawCanFrame.html#a0acb487612104c99c9907344c035df83"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isExtended"><param name="Local" value="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodedSignalValue"><param name="Local" value="structDecodedSignalValue.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodedSignalValue"><param name="Local" value="structDecodedSignalValue.html#a1481b122a7ce5a618012b1133c6adedf"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="definition"><param name="Local" value="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="physicalValue"><param name="Local" value="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="rawValue"><param name="Local" value="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="valid"><param name="Local" value="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodedFrameValue"><param name="Local" value="structDecodedFrameValue.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodedFrameValue"><param name="Local" value="structDecodedFrameValue.html#a19f754bb84e67e6ae71ea93b9ae6382b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="definition"><param name="Local" value="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="signals"><param name="Local" value="structDecodedFrameValue.html#a8440e0e5d7953102095b029f522022d3"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="valid"><param name="Local" value="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcDecoder"><param name="Local" value="classDbcDecoder.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Decode"><param name="Local" value="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ExtractIntel"><param name="Local" value="classDbcDecoder.html#aba130165c1a73bb4cd3a0454f415d872"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ExtractMotorola"><param name="Local" value="classDbcDecoder.html#aede690734148c3d538105d5a2f7ee0a9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ExtractUnsigned"><param name="Local" value="classDbcDecoder.html#a2a8a99b1107543be6fd1b3f891130bf5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FindFrame"><param name="Local" value="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SignExtend"><param name="Local" value="classDbcDecoder.html#a41e89e343338088d27e46773fa52df42"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_parser.cpp"><param name="Local" value="dbc__parser_8cpp.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TrimText"><param name="Local" value="dbc__parser_8cpp.html#a5850f07ce5f4e5c4f3bf385ebcfcebbb"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_parser.h"><param name="Local" value="dbc__parser_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcParser"><param name="Local" value="classDbcParser.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FindFrameById"><param name="Local" value="classDbcParser.html#ab1fee32cb845573ce10949b4bec721f9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FindSignalByName"><param name="Local" value="classDbcParser.html#ab7b95be4433c56cc855bedb08b96a71a"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="IsCommentLine"><param name="Local" value="classDbcParser.html#ae3488a0a6c64dc95e4ed289e77579feb"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="IsFrameLine"><param name="Local" value="classDbcParser.html#ada086584d371c08dd93b75fb7965f13b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="IsSignalLine"><param name="Local" value="classDbcParser.html#ace3d3432a55707bc286a994aa205fed1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="NormalizeCanId"><param name="Local" value="classDbcParser.html#a94d140d9442e4989b5b2ea7662c2debf"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ParseCommentLine"><param name="Local" value="classDbcParser.html#aa662b34694fd8b3edd757f36cb064c5c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ParseFile"><param name="Local" value="classDbcParser.html#aef72826942c9095d653fafa435855e56"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ParseFrameLine"><param name="Local" value="classDbcParser.html#a6d73bb1885e59aecd8202e93a7cd392a"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ParseSignalLine"><param name="Local" value="classDbcParser.html#a4cbce88d08b1f72903ecf1bce41de5d2"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SplitReceivers"><param name="Local" value="classDbcParser.html#a0c1cc3c58f33473bf426a77b7a25c529"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Trim"><param name="Local" value="classDbcParser.html#a1ae77c4c356af3d7b01a30044366f02b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TryExtractPgn"><param name="Local" value="classDbcParser.html#a8a7e8fc517e40beab87a8a1dbad2b324"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_tree_builder.cpp"><param name="Local" value="dbc__tree__builder_8cpp.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dbc_tree_builder.h"><param name="Local" value="dbc__tree__builder_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DbcTreeBuilder"><param name="Local" value="classDbcTreeBuilder.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Build"><param name="Local" value="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="decode_database.h"><param name="Local" value="decode__database_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeSignal"><param name="Local" value="structDecodeSignal.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeSignal"><param name="Local" value="structDecodeSignal.html#a93fd97267e2614979440261628e493f5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="byteOrder"><param name="Local" value="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="comment"><param name="Local" value="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="factor"><param name="Local" value="structDecodeSignal.html#a428c39913a366a8476dd291061354391"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="length"><param name="Local" value="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="maximum"><param name="Local" value="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="minimum"><param name="Local" value="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="name"><param name="Local" value="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="offset"><param name="Local" value="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="receivers"><param name="Local" value="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="startBit"><param name="Local" value="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="unit"><param name="Local" value="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="valueType"><param name="Local" value="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeFrame"><param name="Local" value="structDecodeFrame.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeFrame"><param name="Local" value="structDecodeFrame.html#ae6ae88ee29bcaff936e7c7b2380f96b4"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="canId"><param name="Local" value="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="comment"><param name="Local" value="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dlc"><param name="Local" value="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="hasPgn"><param name="Local" value="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isExtended"><param name="Local" value="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="name"><param name="Local" value="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="pgn"><param name="Local" value="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="signals"><param name="Local" value="structDecodeFrame.html#a372afd9e74f1ae33f85cb4acfd3e2036"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="transmitter"><param name="Local" value="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameKey"><param name="Local" value="structFrameKey.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameKey"><param name="Local" value="structFrameKey.html#a0e9aad56b251cdf802d45a9c19050b14"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameKey"><param name="Local" value="structFrameKey.html#a33bde405c7ea53000d54b3dd6e058670"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator=="><param name="Local" value="structFrameKey.html#aaaec9f914e127787247fcda5e183b01f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="canId"><param name="Local" value="structFrameKey.html#a022917652b4d3c2f2dfcc5a13ab7caa4"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isExtended"><param name="Local" value="structFrameKey.html#aa3179b709d02ef70cf0e736f040a2145"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameKeyHasher"><param name="Local" value="structFrameKeyHasher.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator()"><param name="Local" value="structFrameKeyHasher.html#a1612ce56b513790e3ed4c06ec7d28b9f"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="DecodeDatabase"><param name="Local" value="structDecodeDatabase.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="frameIndexByKey"><param name="Local" value="structDecodeDatabase.html#ae4fd1351008bb0dce337821a849100c5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="frames"><param name="Local" value="structDecodeDatabase.html#a2bd4ddfc2602c1de4e12a373bfc93072"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ByteOrder"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Intel"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Motorola"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="ValueType"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Unsigned"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Signed"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="frame_info.h"><param name="Local" value="frame__info_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameInfo"><param name="Local" value="structFrameInfo.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="FrameInfo"><param name="Local" value="structFrameInfo.html#a7f2d192b7969f7b60479a48e1f7eba61"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="canId"><param name="Local" value="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="comment"><param name="Local" value="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="dlc"><param name="Local" value="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="hasPgn"><param name="Local" value="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isExtended"><param name="Local" value="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="name"><param name="Local" value="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="pgn"><param name="Local" value="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="signals"><param name="Local" value="structFrameInfo.html#a942937027f1af06536f98cc23b2bf6ce"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="transmitter"><param name="Local" value="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="main.cpp"><param name="Local" value="main_8cpp.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="main"><param name="Local" value="main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="PrintDecodedFrame"><param name="Local" value="main_8cpp.html#a26dbbea5b56e3fbc451b68f217d5063f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="PrintTree"><param name="Local" value="main_8cpp.html#a57aefef9cfd52a8190df002e12808e0a"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="signal_info.h"><param name="Local" value="signal__info_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SignalInfo"><param name="Local" value="structSignalInfo.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="SignalInfo"><param name="Local" value="structSignalInfo.html#aa2d2cd238118015258e271dce92a971e"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="comment"><param name="Local" value="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="factor"><param name="Local" value="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isLittleEndian"><param name="Local" value="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="isSigned"><param name="Local" value="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="length"><param name="Local" value="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="maximum"><param name="Local" value="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="minimum"><param name="Local" value="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="name"><param name="Local" value="structSignalInfo.html#a379e422a00cad56f896cacf60455b088"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="offset"><param name="Local" value="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="receivers"><param name="Local" value="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="startBit"><param name="Local" value="structSignalInfo.html#ace290724f9801521609aedaa946d61f1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="unit"><param name="Local" value="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="tree_node.cpp"><param name="Local" value="tree__node_8cpp.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="tree_node.h"><param name="Local" value="tree__node_8h.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="~TreeNode"><param name="Local" value="classTreeNode.html#a89eb1eb0e25fccaa83c780b85f95b570"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#a4d3054a033accf3e38ea132002fc35ff"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="TreeNode"><param name="Local" value="classTreeNode.html#a35724af755b5d0c43de40a723ef81ec1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="AddChild"><param name="Local" value="classTreeNode.html#a6161f2ebb92184eab4215d121870e788"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetChild"><param name="Local" value="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetChild"><param name="Local" value="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetChildCount"><param name="Local" value="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetFrame"><param name="Local" value="classTreeNode.html#afc503b40004764163605d6dbdb4ef811"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetName"><param name="Local" value="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetSignal"><param name="Local" value="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="GetType"><param name="Local" value="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator="><param name="Local" value="classTreeNode.html#ad6ce97dcf532b452d520452b6d000daa"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="operator="><param name="Local" value="classTreeNode.html#a88fbcbec9c64d888b19c5edb95059a95"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_children"><param name="Local" value="classTreeNode.html#a1bd61f40df6d36e61021063e3816a351"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_frame"><param name="Local" value="classTreeNode.html#a77ee6aa80774d67ba442a66b45c798c2"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_name"><param name="Local" value="classTreeNode.html#ac0ddcb8370e6b51e2d3de6b8211a47f8"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_signal"><param name="Local" value="classTreeNode.html#ae658355007bc9303f7bfae3bb3ec8386"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="m_type"><param name="Local" value="classTreeNode.html#a04bccab9e60a6a78777cd7dfec52d224"><param name="ImageNumber" value="11"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="NodeType"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Root"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Frame"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Signal"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="File Members"><param name="Local" value="globals.html"><param name="ImageNumber" value="1"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Name" value="All"><param name="Local" value="globals.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Functions"><param name="Local" value="globals_func.html"><param name="ImageNumber" value="11"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Name" value="Enumerations"><param name="Local" value="globals_enum.html"><param name="ImageNumber" value="11"></OBJECT>
</UL>
</UL>
</UL>
</BODY>
</HTML>

794
docs/html/index.hhk Normal file
View File

@@ -0,0 +1,794 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML><HEAD></HEAD><BODY>
<OBJECT type="text/site properties">
<param name="FrameName" value="right">
</OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a6161f2ebb92184eab4215d121870e788"><param name="Name" value="AddChild(std::unique_ptr&lt; TreeNode &gt; child)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b"><param name="Name" value="Build(const DbcDatabase &amp;database) const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b"><param name="Name" value="Build(const DbcDatabase &amp;source) const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b"><param name="Name" value="ByteOrder"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="md_README.html"><param name="Name" value="DBC Parser and Runtime Decode Module Documentation"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDbcDatabase.html"><param name="Name" value="DbcDatabase"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDbcDatabase.html"><param name="Name" value="DbcDatabase"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"><param name="Name" value="frames"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecodeBuilder.html"><param name="Name" value="DbcDecodeBuilder"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecodeBuilder.html"><param name="Name" value="DbcDecodeBuilder"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b"><param name="Name" value="Build(const DbcDatabase &amp;source) const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html"><param name="Name" value="DbcDecoder"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html"><param name="Name" value="DbcDecoder"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"><param name="Name" value="Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html"><param name="Name" value="DbcDecoder"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#aba130165c1a73bb4cd3a0454f415d872"><param name="Name" value="ExtractIntel(const std::vector&lt; std::uint8_t &gt; &amp;data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &amp;value)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html"><param name="Name" value="DbcDecoder"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#aede690734148c3d538105d5a2f7ee0a9"><param name="Name" value="ExtractMotorola(const std::vector&lt; std::uint8_t &gt; &amp;data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &amp;value)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html"><param name="Name" value="DbcDecoder"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#a2a8a99b1107543be6fd1b3f891130bf5"><param name="Name" value="ExtractUnsigned(const std::vector&lt; std::uint8_t &gt; &amp;data, const DecodeSignal &amp;signal, std::uint64_t &amp;value)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html"><param name="Name" value="DbcDecoder"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da"><param name="Name" value="FindFrame(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html"><param name="Name" value="DbcDecoder"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#a41e89e343338088d27e46773fa52df42"><param name="Name" value="SignExtend(std::uint64_t value, std::uint32_t bitLength)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ab1fee32cb845573ce10949b4bec721f9"><param name="Name" value="FindFrameById(DbcDatabase &amp;database, std::uint32_t canId, bool isExtended)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ab7b95be4433c56cc855bedb08b96a71a"><param name="Name" value="FindSignalByName(FrameInfo &amp;frame, const std::string &amp;signalName)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ae3488a0a6c64dc95e4ed289e77579feb"><param name="Name" value="IsCommentLine(const std::string &amp;line)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ada086584d371c08dd93b75fb7965f13b"><param name="Name" value="IsFrameLine(const std::string &amp;line)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ace3d3432a55707bc286a994aa205fed1"><param name="Name" value="IsSignalLine(const std::string &amp;line)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a94d140d9442e4989b5b2ea7662c2debf"><param name="Name" value="NormalizeCanId(std::uint32_t rawCanId, std::uint32_t &amp;normalizedCanId, bool &amp;isExtended)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#aa662b34694fd8b3edd757f36cb064c5c"><param name="Name" value="ParseCommentLine(const std::string &amp;line, DbcDatabase &amp;database)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#aef72826942c9095d653fafa435855e56"><param name="Name" value="ParseFile(const std::string &amp;filePath) const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a6d73bb1885e59aecd8202e93a7cd392a"><param name="Name" value="ParseFrameLine(const std::string &amp;line)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a4cbce88d08b1f72903ecf1bce41de5d2"><param name="Name" value="ParseSignalLine(const std::string &amp;line)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a0c1cc3c58f33473bf426a77b7a25c529"><param name="Name" value="SplitReceivers(const std::string &amp;text)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a1ae77c4c356af3d7b01a30044366f02b"><param name="Name" value="Trim(const std::string &amp;text)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html"><param name="Name" value="DbcParser"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a8a7e8fc517e40beab87a8a1dbad2b324"><param name="Name" value="TryExtractPgn(std::uint32_t canId, bool isExtended, bool &amp;hasPgn)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcTreeBuilder.html"><param name="Name" value="DbcTreeBuilder"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcTreeBuilder.html"><param name="Name" value="DbcTreeBuilder"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b"><param name="Name" value="Build(const DbcDatabase &amp;database) const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"><param name="Name" value="Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeDatabase.html"><param name="Name" value="DecodeDatabase"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeDatabase.html"><param name="Name" value="DecodeDatabase"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeDatabase.html#ae4fd1351008bb0dce337821a849100c5"><param name="Name" value="frameIndexByKey"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeDatabase.html"><param name="Name" value="DecodeDatabase"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeDatabase.html#a2bd4ddfc2602c1de4e12a373bfc93072"><param name="Name" value="frames"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#ae6ae88ee29bcaff936e7c7b2380f96b4"><param name="Name" value="DecodeFrame()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#ae6ae88ee29bcaff936e7c7b2380f96b4"><param name="Name" value="DecodeFrame()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"><param name="Name" value="canId"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"><param name="Name" value="comment"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"><param name="Name" value="dlc"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"><param name="Name" value="hasPgn"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"><param name="Name" value="isExtended"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"><param name="Name" value="name"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"><param name="Name" value="pgn"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a372afd9e74f1ae33f85cb4acfd3e2036"><param name="Name" value="signals"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html"><param name="Name" value="DecodeFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"><param name="Name" value="transmitter"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a93fd97267e2614979440261628e493f5"><param name="Name" value="DecodeSignal()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a93fd97267e2614979440261628e493f5"><param name="Name" value="DecodeSignal()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d"><param name="Name" value="byteOrder"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"><param name="Name" value="comment"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a428c39913a366a8476dd291061354391"><param name="Name" value="factor"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"><param name="Name" value="length"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"><param name="Name" value="maximum"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"><param name="Name" value="minimum"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"><param name="Name" value="name"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"><param name="Name" value="offset"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"><param name="Name" value="receivers"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"><param name="Name" value="startBit"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"><param name="Name" value="unit"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html"><param name="Name" value="DecodeSignal"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8"><param name="Name" value="valueType"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html"><param name="Name" value="DecodedFrameValue"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a19f754bb84e67e6ae71ea93b9ae6382b"><param name="Name" value="DecodedFrameValue()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html"><param name="Name" value="DecodedFrameValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a19f754bb84e67e6ae71ea93b9ae6382b"><param name="Name" value="DecodedFrameValue()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html"><param name="Name" value="DecodedFrameValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"><param name="Name" value="definition"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html"><param name="Name" value="DecodedFrameValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a8440e0e5d7953102095b029f522022d3"><param name="Name" value="signals"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html"><param name="Name" value="DecodedFrameValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"><param name="Name" value="valid"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html"><param name="Name" value="DecodedSignalValue"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#a1481b122a7ce5a618012b1133c6adedf"><param name="Name" value="DecodedSignalValue()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html"><param name="Name" value="DecodedSignalValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#a1481b122a7ce5a618012b1133c6adedf"><param name="Name" value="DecodedSignalValue()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html"><param name="Name" value="DecodedSignalValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"><param name="Name" value="definition"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html"><param name="Name" value="DecodedSignalValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"><param name="Name" value="physicalValue"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html"><param name="Name" value="DecodedSignalValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec"><param name="Name" value="rawValue"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html"><param name="Name" value="DecodedSignalValue"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"><param name="Name" value="valid"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#aba130165c1a73bb4cd3a0454f415d872"><param name="Name" value="ExtractIntel(const std::vector&lt; std::uint8_t &gt; &amp;data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &amp;value)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#aede690734148c3d538105d5a2f7ee0a9"><param name="Name" value="ExtractMotorola(const std::vector&lt; std::uint8_t &gt; &amp;data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &amp;value)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#a2a8a99b1107543be6fd1b3f891130bf5"><param name="Name" value="ExtractUnsigned(const std::vector&lt; std::uint8_t &gt; &amp;data, const DecodeSignal &amp;signal, std::uint64_t &amp;value)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da"><param name="Name" value="FindFrame(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ab1fee32cb845573ce10949b4bec721f9"><param name="Name" value="FindFrameById(DbcDatabase &amp;database, std::uint32_t canId, bool isExtended)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ab7b95be4433c56cc855bedb08b96a71a"><param name="Name" value="FindSignalByName(FrameInfo &amp;frame, const std::string &amp;signalName)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a"><param name="Name" value="Frame"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a7f2d192b7969f7b60479a48e1f7eba61"><param name="Name" value="FrameInfo()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a7f2d192b7969f7b60479a48e1f7eba61"><param name="Name" value="FrameInfo()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"><param name="Name" value="canId"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"><param name="Name" value="comment"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"><param name="Name" value="dlc"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"><param name="Name" value="hasPgn"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"><param name="Name" value="isExtended"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"><param name="Name" value="name"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"><param name="Name" value="pgn"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a942937027f1af06536f98cc23b2bf6ce"><param name="Name" value="signals"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html"><param name="Name" value="FrameInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"><param name="Name" value="transmitter"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html"><param name="Name" value="FrameKey"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#a0e9aad56b251cdf802d45a9c19050b14"><param name="Name" value="FrameKey()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#a33bde405c7ea53000d54b3dd6e058670"><param name="Name" value="FrameKey(std::uint32_t id, bool extended)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html"><param name="Name" value="FrameKey"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#a0e9aad56b251cdf802d45a9c19050b14"><param name="Name" value="FrameKey()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html"><param name="Name" value="FrameKey"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#a33bde405c7ea53000d54b3dd6e058670"><param name="Name" value="FrameKey(std::uint32_t id, bool extended)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html"><param name="Name" value="FrameKey"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#a022917652b4d3c2f2dfcc5a13ab7caa4"><param name="Name" value="canId"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html"><param name="Name" value="FrameKey"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#aa3179b709d02ef70cf0e736f040a2145"><param name="Name" value="isExtended"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html"><param name="Name" value="FrameKey"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#aaaec9f914e127787247fcda5e183b01f"><param name="Name" value="operator==(const FrameKey &amp;other) const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKeyHasher.html"><param name="Name" value="FrameKeyHasher"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKeyHasher.html"><param name="Name" value="FrameKeyHasher"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKeyHasher.html#a1612ce56b513790e3ed4c06ec7d28b9f"><param name="Name" value="operator()(const FrameKey &amp;key) const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6"><param name="Name" value="GetChild(std::size_t index) const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f"><param name="Name" value="GetChild(std::size_t index)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea"><param name="Name" value="GetChildCount() const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#afc503b40004764163605d6dbdb4ef811"><param name="Name" value="GetFrame() const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18"><param name="Name" value="GetName() const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1"><param name="Name" value="GetSignal() const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9"><param name="Name" value="GetType() const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5"><param name="Name" value="Intel"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ae3488a0a6c64dc95e4ed289e77579feb"><param name="Name" value="IsCommentLine(const std::string &amp;line)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ada086584d371c08dd93b75fb7965f13b"><param name="Name" value="IsFrameLine(const std::string &amp;line)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#ace3d3432a55707bc286a994aa205fed1"><param name="Name" value="IsSignalLine(const std::string &amp;line)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31"><param name="Name" value="Motorola"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16"><param name="Name" value="NodeType"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a94d140d9442e4989b5b2ea7662c2debf"><param name="Name" value="NormalizeCanId(std::uint32_t rawCanId, std::uint32_t &amp;normalizedCanId, bool &amp;isExtended)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#aa662b34694fd8b3edd757f36cb064c5c"><param name="Name" value="ParseCommentLine(const std::string &amp;line, DbcDatabase &amp;database)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#aef72826942c9095d653fafa435855e56"><param name="Name" value="ParseFile(const std::string &amp;filePath) const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a6d73bb1885e59aecd8202e93a7cd392a"><param name="Name" value="ParseFrameLine(const std::string &amp;line)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a4cbce88d08b1f72903ecf1bce41de5d2"><param name="Name" value="ParseSignalLine(const std::string &amp;line)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html#a26dbbea5b56e3fbc451b68f217d5063f"><param name="Name" value="PrintDecodedFrame(const DecodedFrameValue &amp;decoded)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html#a57aefef9cfd52a8190df002e12808e0a"><param name="Name" value="PrintTree(const TreeNode *node, int indent)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html"><param name="Name" value="RawCanFrame"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a17d18b39bed45e69f4e17ae2838f07f7"><param name="Name" value="RawCanFrame()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html"><param name="Name" value="RawCanFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a17d18b39bed45e69f4e17ae2838f07f7"><param name="Name" value="RawCanFrame()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html"><param name="Name" value="RawCanFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"><param name="Name" value="canId"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html"><param name="Name" value="RawCanFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a0acb487612104c99c9907344c035df83"><param name="Name" value="data"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html"><param name="Name" value="RawCanFrame"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"><param name="Name" value="isExtended"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad"><param name="Name" value="Root"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcDecoder.html#a41e89e343338088d27e46773fa52df42"><param name="Name" value="SignExtend(std::uint64_t value, std::uint32_t bitLength)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398"><param name="Name" value="Signal"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#aa2d2cd238118015258e271dce92a971e"><param name="Name" value="SignalInfo()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#aa2d2cd238118015258e271dce92a971e"><param name="Name" value="SignalInfo()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5"><param name="Name" value="comment"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499"><param name="Name" value="factor"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c"><param name="Name" value="isLittleEndian"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f"><param name="Name" value="isSigned"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa"><param name="Name" value="length"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52"><param name="Name" value="maximum"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b"><param name="Name" value="minimum"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a379e422a00cad56f896cacf60455b088"><param name="Name" value="name"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e"><param name="Name" value="offset"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3"><param name="Name" value="receivers"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ace290724f9801521609aedaa946d61f1"><param name="Name" value="startBit"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html"><param name="Name" value="SignalInfo"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01"><param name="Name" value="unit"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379"><param name="Name" value="Signed"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a0c1cc3c58f33473bf426a77b7a25c529"><param name="Name" value="SplitReceivers(const std::string &amp;text)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d"><param name="Name" value="TreeNode()"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a35724af755b5d0c43de40a723ef81ec1"><param name="Name" value="TreeNode(TreeNode &amp;&amp;)=default"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc"><param name="Name" value="TreeNode(const FrameInfo &amp;frame)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae"><param name="Name" value="TreeNode(const SignalInfo &amp;signal)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a4d3054a033accf3e38ea132002fc35ff"><param name="Name" value="TreeNode(const TreeNode &amp;)=delete"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a6161f2ebb92184eab4215d121870e788"><param name="Name" value="AddChild(std::unique_ptr&lt; TreeNode &gt; child)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f"><param name="Name" value="GetChild(std::size_t index)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6"><param name="Name" value="GetChild(std::size_t index) const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea"><param name="Name" value="GetChildCount() const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#afc503b40004764163605d6dbdb4ef811"><param name="Name" value="GetFrame() const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18"><param name="Name" value="GetName() const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1"><param name="Name" value="GetSignal() const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9"><param name="Name" value="GetType() const"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d"><param name="Name" value="TreeNode()"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a35724af755b5d0c43de40a723ef81ec1"><param name="Name" value="TreeNode(TreeNode &amp;&amp;)=default"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc"><param name="Name" value="TreeNode(const FrameInfo &amp;frame)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae"><param name="Name" value="TreeNode(const SignalInfo &amp;signal)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a4d3054a033accf3e38ea132002fc35ff"><param name="Name" value="TreeNode(const TreeNode &amp;)=delete"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a1bd61f40df6d36e61021063e3816a351"><param name="Name" value="m_children"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a77ee6aa80774d67ba442a66b45c798c2"><param name="Name" value="m_frame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#ac0ddcb8370e6b51e2d3de6b8211a47f8"><param name="Name" value="m_name"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#ae658355007bc9303f7bfae3bb3ec8386"><param name="Name" value="m_signal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a04bccab9e60a6a78777cd7dfec52d224"><param name="Name" value="m_type"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a88fbcbec9c64d888b19c5edb95059a95"><param name="Name" value="operator=(TreeNode &amp;&amp;)=default"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#ad6ce97dcf532b452d520452b6d000daa"><param name="Name" value="operator=(const TreeNode &amp;)=delete"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html"><param name="Name" value="TreeNode"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a89eb1eb0e25fccaa83c780b85f95b570"><param name="Name" value="~TreeNode()=default"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a1ae77c4c356af3d7b01a30044366f02b"><param name="Name" value="Trim(const std::string &amp;text)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html#a5850f07ce5f4e5c4f3bf385ebcfcebbb"><param name="Name" value="TrimText(const std::string &amp;text)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classDbcParser.html#a8a7e8fc517e40beab87a8a1dbad2b324"><param name="Name" value="TryExtractPgn(std::uint32_t canId, bool isExtended, bool &amp;hasPgn)"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a"><param name="Name" value="Unsigned"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1"><param name="Name" value="ValueType"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html"><param name="Name" value="anonymous_namespace{dbc_parser.cpp}"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html"><param name="Name" value="anonymous_namespace{dbc_parser.cpp}"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html#a5850f07ce5f4e5c4f3bf385ebcfcebbb"><param name="Name" value="TrimText(const std::string &amp;text)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d"><param name="Name" value="byteOrder"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"><param name="Name" value="canId"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"><param name="Name" value="canId"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#a022917652b4d3c2f2dfcc5a13ab7caa4"><param name="Name" value="canId"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#a022917652b4d3c2f2dfcc5a13ab7caa4"><param name="Name" value="FrameKey"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"><param name="Name" value="canId"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"><param name="Name" value="RawCanFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"><param name="Name" value="comment"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"><param name="Name" value="comment"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"><param name="Name" value="comment"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5"><param name="Name" value="comment"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a0acb487612104c99c9907344c035df83"><param name="Name" value="data"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html"><param name="Name" value="decode_database.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b"><param name="Name" value="ByteOrder"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html"><param name="Name" value="decode_database.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5"><param name="Name" value="Intel"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html"><param name="Name" value="decode_database.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31"><param name="Name" value="Motorola"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html"><param name="Name" value="decode_database.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379"><param name="Name" value="Signed"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html"><param name="Name" value="decode_database.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a"><param name="Name" value="Unsigned"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html"><param name="Name" value="decode_database.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1"><param name="Name" value="ValueType"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"><param name="Name" value="definition"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"><param name="Name" value="DecodedFrameValue"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"><param name="Name" value="definition"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"><param name="Name" value="DecodedSignalValue"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"><param name="Name" value="dlc"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"><param name="Name" value="dlc"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a428c39913a366a8476dd291061354391"><param name="Name" value="factor"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a428c39913a366a8476dd291061354391"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499"><param name="Name" value="factor"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeDatabase.html#ae4fd1351008bb0dce337821a849100c5"><param name="Name" value="frameIndexByKey"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"><param name="Name" value="frames"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"><param name="Name" value="DbcDatabase"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeDatabase.html#a2bd4ddfc2602c1de4e12a373bfc93072"><param name="Name" value="frames"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeDatabase.html#a2bd4ddfc2602c1de4e12a373bfc93072"><param name="Name" value="DecodeDatabase"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"><param name="Name" value="hasPgn"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"><param name="Name" value="hasPgn"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"><param name="Name" value="isExtended"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"><param name="Name" value="isExtended"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#aa3179b709d02ef70cf0e736f040a2145"><param name="Name" value="isExtended"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#aa3179b709d02ef70cf0e736f040a2145"><param name="Name" value="FrameKey"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"><param name="Name" value="isExtended"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"><param name="Name" value="RawCanFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c"><param name="Name" value="isLittleEndian"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f"><param name="Name" value="isSigned"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"><param name="Name" value="length"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa"><param name="Name" value="length"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a1bd61f40df6d36e61021063e3816a351"><param name="Name" value="m_children"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a77ee6aa80774d67ba442a66b45c798c2"><param name="Name" value="m_frame"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#ac0ddcb8370e6b51e2d3de6b8211a47f8"><param name="Name" value="m_name"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#ae658355007bc9303f7bfae3bb3ec8386"><param name="Name" value="m_signal"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a04bccab9e60a6a78777cd7dfec52d224"><param name="Name" value="m_type"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97"><param name="Name" value="main(int argc, char *argv[])"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html"><param name="Name" value="main.cpp"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html#a26dbbea5b56e3fbc451b68f217d5063f"><param name="Name" value="PrintDecodedFrame(const DecodedFrameValue &amp;decoded)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html"><param name="Name" value="main.cpp"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html#a57aefef9cfd52a8190df002e12808e0a"><param name="Name" value="PrintTree(const TreeNode *node, int indent)"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html"><param name="Name" value="main.cpp"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97"><param name="Name" value="main(int argc, char *argv[])"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"><param name="Name" value="maximum"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52"><param name="Name" value="maximum"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"><param name="Name" value="minimum"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b"><param name="Name" value="minimum"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"><param name="Name" value="name"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"><param name="Name" value="name"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"><param name="Name" value="name"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a379e422a00cad56f896cacf60455b088"><param name="Name" value="name"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a379e422a00cad56f896cacf60455b088"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"><param name="Name" value="offset"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e"><param name="Name" value="offset"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKeyHasher.html#a1612ce56b513790e3ed4c06ec7d28b9f"><param name="Name" value="operator()(const FrameKey &amp;key) const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a88fbcbec9c64d888b19c5edb95059a95"><param name="Name" value="operator=(TreeNode &amp;&amp;)=default"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#ad6ce97dcf532b452d520452b6d000daa"><param name="Name" value="operator=(const TreeNode &amp;)=delete"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameKey.html#aaaec9f914e127787247fcda5e183b01f"><param name="Name" value="operator==(const FrameKey &amp;other) const"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"><param name="Name" value="pgn"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"><param name="Name" value="pgn"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"><param name="Name" value="physicalValue"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec"><param name="Name" value="rawValue"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"><param name="Name" value="receivers"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3"><param name="Name" value="receivers"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a372afd9e74f1ae33f85cb4acfd3e2036"><param name="Name" value="signals"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#a372afd9e74f1ae33f85cb4acfd3e2036"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a8440e0e5d7953102095b029f522022d3"><param name="Name" value="signals"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a8440e0e5d7953102095b029f522022d3"><param name="Name" value="DecodedFrameValue"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a942937027f1af06536f98cc23b2bf6ce"><param name="Name" value="signals"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a942937027f1af06536f98cc23b2bf6ce"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"><param name="Name" value="startBit"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ace290724f9801521609aedaa946d61f1"><param name="Name" value="startBit"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#ace290724f9801521609aedaa946d61f1"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"><param name="Name" value="transmitter"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"><param name="Name" value="DecodeFrame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"><param name="Name" value="transmitter"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"><param name="Name" value="FrameInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html"><param name="Name" value="tree_node.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a"><param name="Name" value="Frame"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html"><param name="Name" value="tree_node.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16"><param name="Name" value="NodeType"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html"><param name="Name" value="tree_node.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad"><param name="Name" value="Root"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html"><param name="Name" value="tree_node.h"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398"><param name="Name" value="Signal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"><param name="Name" value="unit"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"><param name="Name" value="DecodeSignal"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01"><param name="Name" value="unit"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01"><param name="Name" value="SignalInfo"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"><param name="Name" value="valid"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"><param name="Name" value="DecodedFrameValue"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"><param name="Name" value="valid"></OBJECT>
<UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"><param name="Name" value="DecodedSignalValue"></OBJECT>
</UL>
<LI><OBJECT type="text/sitemap"><param name="Local" value="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8"><param name="Name" value="valueType"></OBJECT>
<LI><OBJECT type="text/sitemap"><param name="Local" value="classTreeNode.html#a89eb1eb0e25fccaa83c780b85f95b570"><param name="Name" value="~TreeNode()=default"></OBJECT>
</UL>
</BODY>
</HTML>

116
docs/html/index.hhp Normal file
View File

@@ -0,0 +1,116 @@
[OPTIONS]
Compiled file=dbc.chm
Compatibility=1.1
Full-text search=Yes
Contents file=index.hhc
Default Window=main
Default topic=index.html
Index file=index.hhk
Language=0x409 English (United States)
Title=DBC framework
[WINDOWS]
main="DBC framework","index.hhc","index.hhk","index.html","index.html",,,,,0x23520,,0x10387e,,,,,,,,0
[FILES]
README_8md.html
annotated.html
classDbcDecodeBuilder-members.html
classDbcDecodeBuilder.html
classDbcDecoder-members.html
classDbcDecoder.html
classDbcParser-members.html
classDbcParser.html
classDbcTreeBuilder-members.html
classDbcTreeBuilder.html
classTreeNode-members.html
classTreeNode.html
classes.html
dbc__database_8h.html
dbc__database_8h_source.html
dbc__decode__builder_8cpp.html
dbc__decode__builder_8cpp_source.html
dbc__decode__builder_8h.html
dbc__decode__builder_8h_source.html
dbc__decoder_8cpp.html
dbc__decoder_8cpp_source.html
dbc__decoder_8h.html
dbc__decoder_8h_source.html
dbc__parser_8cpp.html
dbc__parser_8cpp_source.html
dbc__parser_8h.html
dbc__parser_8h_source.html
dbc__tree__builder_8cpp.html
dbc__tree__builder_8cpp_source.html
dbc__tree__builder_8h.html
dbc__tree__builder_8h_source.html
decode__database_8h.html
decode__database_8h_source.html
files.html
frame__info_8h.html
frame__info_8h_source.html
functions.html
functions_func.html
functions_vars.html
globals.html
globals_enum.html
globals_func.html
index.html
main_8cpp.html
main_8cpp_source.html
md_README.html
namespaceanonymous__namespace_02dbc__parser_8cpp_03.html
namespacemembers.html
namespacemembers_func.html
namespaces.html
pages.html
signal__info_8h.html
signal__info_8h_source.html
structDbcDatabase-members.html
structDbcDatabase.html
structDecodeDatabase-members.html
structDecodeDatabase.html
structDecodeFrame-members.html
structDecodeFrame.html
structDecodeSignal-members.html
structDecodeSignal.html
structDecodedFrameValue-members.html
structDecodedFrameValue.html
structDecodedSignalValue-members.html
structDecodedSignalValue.html
structFrameInfo-members.html
structFrameInfo.html
structFrameKey-members.html
structFrameKey.html
structFrameKeyHasher-members.html
structFrameKeyHasher.html
structRawCanFrame-members.html
structRawCanFrame.html
structSignalInfo-members.html
structSignalInfo.html
tree__node_8cpp.html
tree__node_8cpp_source.html
tree__node_8h.html
tree__node_8h_source.html
bc_s.png
bdwn.png
closed.png
doc.png
doxygen.svg
folderclosed.png
folderopen.png
nav_f.png
nav_g.png
nav_h.png
open.png
splitbar.png
sync_off.png
sync_on.png
tab_a.png
tab_b.png
tab_h.png
tab_s.png
doxygen.css
dynsections.js
jquery.js
tabs.css

98
docs/html/index.html Normal file
View File

@@ -0,0 +1,98 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Main Page</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('index.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">DBC Framework Documentation</div></div>
</div><!--header-->
<div class="contents">
</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.4 </li>
</ul>
</div>
</body>
</html>

551
docs/html/index.qhp Normal file
View File

@@ -0,0 +1,551 @@
<?xml version="1.0" encoding="UTF-8"?>
<QtHelpProject version="1.0">
<namespace>ca.himro.dbcframework</namespace>
<virtualFolder>doc</virtualFolder>
<customFilter name="DBC Framework">
</customFilter>
<filterSection>
<filterAttribute>dbc</filterAttribute>
<filterAttribute>framework</filterAttribute>
<filterAttribute>c++</filterAttribute>
<filterAttribute>qt</filterAttribute>
<filterAttribute>doxygen</filterAttribute>
<toc>
<section title="DBC Framework" ref="index.html">
<section title="DBC Parser and Runtime Decode Module Documentation" ref="md_README.html">
<section title="Overview" ref="md_README.html#autotoc_md1"/>
<section title="High-Level Architecture" ref="md_README.html#autotoc_md3">
<section title="1. Parse and UI path" ref="md_README.html#autotoc_md4"/>
<section title="2. Runtime decode path" ref="md_README.html#autotoc_md5"/>
</section>
<section title="Why the Runtime Decode Layer Exists" ref="md_README.html#autotoc_md7"/>
<section title="Module Layout" ref="md_README.html#autotoc_md9">
<section title="Parsed DBC structures" ref="md_README.html#autotoc_md10"/>
<section title="UI tree structures" ref="md_README.html#autotoc_md11"/>
<section title="Runtime decode structures" ref="md_README.html#autotoc_md12"/>
<section title="Runtime decoder" ref="md_README.html#autotoc_md13"/>
<section title="Parser" ref="md_README.html#autotoc_md14"/>
<section title="Demo" ref="md_README.html#autotoc_md15"/>
</section>
<section title="Parsed Data Structures" ref="md_README.html#autotoc_md17"/>
<section title="&lt;tt&gt;SignalInfo&lt;/tt&gt;" ref="md_README.html#autotoc_md18"/>
<section title="&lt;tt&gt;FrameInfo&lt;/tt&gt;" ref="md_README.html#autotoc_md20"/>
<section title="&lt;tt&gt;DbcDatabase&lt;/tt&gt;" ref="md_README.html#autotoc_md22"/>
<section title="UI Tree Layer" ref="md_README.html#autotoc_md24"/>
<section title="&lt;tt&gt;TreeNode&lt;/tt&gt;" ref="md_README.html#autotoc_md25"/>
<section title="Runtime Decode Layer" ref="md_README.html#autotoc_md27"/>
<section title="Purpose" ref="md_README.html#autotoc_md28"/>
<section title="&lt;tt&gt;ByteOrder&lt;/tt&gt;" ref="md_README.html#autotoc_md30"/>
<section title="&lt;tt&gt;ValueType&lt;/tt&gt;" ref="md_README.html#autotoc_md32"/>
<section title="&lt;tt&gt;DecodeSignal&lt;/tt&gt;" ref="md_README.html#autotoc_md34"/>
<section title="&lt;tt&gt;DecodeFrame&lt;/tt&gt;" ref="md_README.html#autotoc_md36"/>
<section title="&lt;tt&gt;FrameKey&lt;/tt&gt;" ref="md_README.html#autotoc_md38"/>
<section title="&lt;tt&gt;DecodeDatabase&lt;/tt&gt;" ref="md_README.html#autotoc_md40"/>
<section title="Decoder Layer" ref="md_README.html#autotoc_md42"/>
<section title="&lt;tt&gt;RawCanFrame&lt;/tt&gt;" ref="md_README.html#autotoc_md43"/>
<section title="&lt;tt&gt;DecodedSignalValue&lt;/tt&gt;" ref="md_README.html#autotoc_md45"/>
<section title="&lt;tt&gt;DecodedFrameValue&lt;/tt&gt;" ref="md_README.html#autotoc_md47"/>
<section title="&lt;tt&gt;DbcDecoder&lt;/tt&gt;" ref="md_README.html#autotoc_md49"/>
<section title="Parser Support" ref="md_README.html#autotoc_md51"/>
<section title="Supported DBC Syntax" ref="md_README.html#autotoc_md53"/>
<section title="Frame definition" ref="md_README.html#autotoc_md54"/>
<section title="Signal definition" ref="md_README.html#autotoc_md56"/>
<section title="Comments" ref="md_README.html#autotoc_md58"/>
<section title="CAN ID Normalization" ref="md_README.html#autotoc_md60"/>
<section title="PGN Extraction" ref="md_README.html#autotoc_md62"/>
<section title="Decode Flow" ref="md_README.html#autotoc_md64"/>
<section title="Intel and Motorola Extraction" ref="md_README.html#autotoc_md66"/>
<section title="Example Usage" ref="md_README.html#autotoc_md68"/>
<section title="Parse DBC" ref="md_README.html#autotoc_md69"/>
<section title="Build UI tree" ref="md_README.html#autotoc_md70"/>
<section title="Build runtime decode database" ref="md_README.html#autotoc_md71"/>
<section title="Decode a raw frame" ref="md_README.html#autotoc_md72"/>
<section title="Unified Decode Strategy" ref="md_README.html#autotoc_md74">
<section title="live path" ref="md_README.html#autotoc_md75"/>
<section title="trace path" ref="md_README.html#autotoc_md76"/>
</section>
<section title="Intended Use in FrameTap" ref="md_README.html#autotoc_md78"/>
<section title="Why the Tree Is Not Enough" ref="md_README.html#autotoc_md80"/>
<section title="Why No Abstract Factory Is Used" ref="md_README.html#autotoc_md82"/>
<section title="Current Limitations" ref="md_README.html#autotoc_md84"/>
<section title="Recommended Next Steps" ref="md_README.html#autotoc_md86">
<section title="Stage 1 - already implemented" ref="md_README.html#autotoc_md87"/>
<section title="Stage 2" ref="md_README.html#autotoc_md88"/>
<section title="Stage 3" ref="md_README.html#autotoc_md89"/>
<section title="Stage 4" ref="md_README.html#autotoc_md90"/>
</section>
<section title="Build Integration" ref="md_README.html#autotoc_md92"/>
<section title="Summary" ref="md_README.html#autotoc_md94">
<section title="Parsed representation" ref="md_README.html#autotoc_md95"/>
<section title="Runtime decode representation" ref="md_README.html#autotoc_md96"/>
</section>
</section>
<section title="Classes" ref="annotated.html">
<section title="Class List" ref="annotated.html">
<section title="DbcDatabase" ref="structDbcDatabase.html">
<section title="frames" ref="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"/>
</section>
<section title="DbcDecodeBuilder" ref="classDbcDecodeBuilder.html">
<section title="Build" ref="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b"/>
</section>
<section title="DbcDecoder" ref="classDbcDecoder.html">
<section title="FindFrame" ref="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da"/>
<section title="Decode" ref="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"/>
</section>
<section title="DbcParser" ref="classDbcParser.html">
<section title="ParseFile" ref="classDbcParser.html#aef72826942c9095d653fafa435855e56"/>
</section>
<section title="DbcTreeBuilder" ref="classDbcTreeBuilder.html">
<section title="Build" ref="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b"/>
</section>
<section title="DecodeDatabase" ref="structDecodeDatabase.html">
</section>
<section title="DecodedFrameValue" ref="structDecodedFrameValue.html">
<section title="definition" ref="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"/>
<section title="public" ref="structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8"/>
<section title="valid" ref="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"/>
</section>
<section title="DecodedSignalValue" ref="structDecodedSignalValue.html">
<section title="definition" ref="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"/>
<section title="rawValue" ref="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec"/>
<section title="physicalValue" ref="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"/>
<section title="valid" ref="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"/>
</section>
<section title="DecodeFrame" ref="structDecodeFrame.html">
<section title="name" ref="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"/>
<section title="canId" ref="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"/>
<section title="isExtended" ref="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"/>
<section title="dlc" ref="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"/>
<section title="pgn" ref="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"/>
<section title="hasPgn" ref="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"/>
<section title="transmitter" ref="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"/>
<section title="comment" ref="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"/>
<section title="public" ref="structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14"/>
</section>
<section title="DecodeSignal" ref="structDecodeSignal.html">
<section title="name" ref="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"/>
<section title="startBit" ref="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"/>
<section title="length" ref="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"/>
<section title="byteOrder" ref="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d"/>
<section title="valueType" ref="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8"/>
<section title="factor" ref="structDecodeSignal.html#a428c39913a366a8476dd291061354391"/>
<section title="offset" ref="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"/>
<section title="minimum" ref="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"/>
<section title="maximum" ref="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"/>
<section title="unit" ref="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"/>
<section title="receivers" ref="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"/>
<section title="comment" ref="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"/>
</section>
<section title="FrameInfo" ref="structFrameInfo.html">
<section title="name" ref="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"/>
<section title="canId" ref="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"/>
<section title="isExtended" ref="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"/>
<section title="pgn" ref="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"/>
<section title="hasPgn" ref="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"/>
<section title="dlc" ref="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"/>
<section title="transmitter" ref="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"/>
<section title="comment" ref="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"/>
<section title="public" ref="structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084"/>
</section>
<section title="FrameKey" ref="structFrameKey.html">
</section>
<section title="FrameKeyHasher" ref="structFrameKeyHasher.html">
</section>
<section title="RawCanFrame" ref="structRawCanFrame.html">
<section title="canId" ref="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"/>
<section title="isExtended" ref="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"/>
<section title="data" ref="structRawCanFrame.html#a0acb487612104c99c9907344c035df83"/>
</section>
<section title="SignalInfo" ref="structSignalInfo.html">
<section title="name" ref="structSignalInfo.html#a379e422a00cad56f896cacf60455b088"/>
<section title="startBit" ref="structSignalInfo.html#ace290724f9801521609aedaa946d61f1"/>
<section title="length" ref="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa"/>
<section title="isLittleEndian" ref="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c"/>
<section title="isSigned" ref="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f"/>
<section title="factor" ref="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499"/>
<section title="offset" ref="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e"/>
<section title="minimum" ref="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b"/>
<section title="maximum" ref="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52"/>
<section title="unit" ref="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01"/>
<section title="receivers" ref="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3"/>
<section title="comment" ref="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5"/>
</section>
<section title="TreeNode" ref="classTreeNode.html">
<section title="TreeNode" ref="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d"/>
<section title="TreeNode" ref="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc"/>
<section title="TreeNode" ref="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae"/>
<section title="AddChild" ref="classTreeNode.html#a6161f2ebb92184eab4215d121870e788"/>
<section title="GetChildCount" ref="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea"/>
<section title="GetChild" ref="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6"/>
<section title="GetChild" ref="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f"/>
<section title="GetType" ref="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9"/>
<section title="GetName" ref="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18"/>
<section title="GetFrame" ref="classTreeNode.html#afc503b40004764163605d6dbdb4ef811"/>
<section title="GetSignal" ref="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1"/>
</section>
</section>
<section title="Class Index" ref="classes.html"/>
<section title="Class Members" ref="functions.html">
<section title="All" ref="functions.html"/>
<section title="Functions" ref="functions_func.html"/>
<section title="Variables" ref="functions_vars.html"/>
</section>
</section>
<section title="Files" ref="files.html">
<section title="File List" ref="files.html">
<section title="dbc_database.h" ref="dbc__database_8h.html">
<section title="DbcDatabase" ref="structDbcDatabase.html">
<section title="frames" ref="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"/>
</section>
</section>
<section title="dbc_decode_builder.cpp" ref="dbc__decode__builder_8cpp.html"/>
<section title="dbc_decode_builder.h" ref="dbc__decode__builder_8h.html">
<section title="DbcDecodeBuilder" ref="classDbcDecodeBuilder.html">
<section title="Build" ref="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b"/>
</section>
</section>
<section title="dbc_decoder.cpp" ref="dbc__decoder_8cpp.html"/>
<section title="dbc_decoder.h" ref="dbc__decoder_8h.html">
<section title="RawCanFrame" ref="structRawCanFrame.html">
<section title="canId" ref="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"/>
<section title="isExtended" ref="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"/>
<section title="data" ref="structRawCanFrame.html#a0acb487612104c99c9907344c035df83"/>
</section>
<section title="DecodedSignalValue" ref="structDecodedSignalValue.html">
<section title="definition" ref="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"/>
<section title="rawValue" ref="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec"/>
<section title="physicalValue" ref="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"/>
<section title="valid" ref="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"/>
</section>
<section title="DecodedFrameValue" ref="structDecodedFrameValue.html">
<section title="definition" ref="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"/>
<section title="public" ref="structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8"/>
<section title="valid" ref="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"/>
</section>
<section title="DbcDecoder" ref="classDbcDecoder.html">
<section title="FindFrame" ref="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da"/>
<section title="Decode" ref="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"/>
</section>
</section>
<section title="dbc_parser.cpp" ref="dbc__parser_8cpp.html"/>
<section title="dbc_parser.h" ref="dbc__parser_8h.html">
<section title="DbcParser" ref="classDbcParser.html">
<section title="ParseFile" ref="classDbcParser.html#aef72826942c9095d653fafa435855e56"/>
</section>
</section>
<section title="dbc_tree_builder.cpp" ref="dbc__tree__builder_8cpp.html"/>
<section title="dbc_tree_builder.h" ref="dbc__tree__builder_8h.html">
<section title="DbcTreeBuilder" ref="classDbcTreeBuilder.html">
<section title="Build" ref="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b"/>
</section>
</section>
<section title="decode_database.h" ref="decode__database_8h.html">
<section title="DecodeSignal" ref="structDecodeSignal.html">
<section title="name" ref="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"/>
<section title="startBit" ref="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"/>
<section title="length" ref="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"/>
<section title="byteOrder" ref="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d"/>
<section title="valueType" ref="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8"/>
<section title="factor" ref="structDecodeSignal.html#a428c39913a366a8476dd291061354391"/>
<section title="offset" ref="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"/>
<section title="minimum" ref="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"/>
<section title="maximum" ref="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"/>
<section title="unit" ref="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"/>
<section title="receivers" ref="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"/>
<section title="comment" ref="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"/>
</section>
<section title="DecodeFrame" ref="structDecodeFrame.html">
<section title="name" ref="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"/>
<section title="canId" ref="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"/>
<section title="isExtended" ref="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"/>
<section title="dlc" ref="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"/>
<section title="pgn" ref="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"/>
<section title="hasPgn" ref="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"/>
<section title="transmitter" ref="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"/>
<section title="comment" ref="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"/>
<section title="public" ref="structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14"/>
</section>
<section title="FrameKey" ref="structFrameKey.html">
</section>
<section title="FrameKeyHasher" ref="structFrameKeyHasher.html">
</section>
<section title="DecodeDatabase" ref="structDecodeDatabase.html">
</section>
<section title="ByteOrder" ref="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b">
<section title="Intel" ref="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5"/>
<section title="Motorola" ref="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31"/>
</section>
<section title="ValueType" ref="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1">
<section title="Unsigned" ref="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a"/>
<section title="Signed" ref="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379"/>
</section>
</section>
<section title="frame_info.h" ref="frame__info_8h.html">
<section title="FrameInfo" ref="structFrameInfo.html">
<section title="name" ref="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"/>
<section title="canId" ref="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"/>
<section title="isExtended" ref="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"/>
<section title="pgn" ref="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"/>
<section title="hasPgn" ref="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"/>
<section title="dlc" ref="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"/>
<section title="transmitter" ref="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"/>
<section title="comment" ref="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"/>
<section title="public" ref="structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084"/>
</section>
</section>
<section title="main.cpp" ref="main_8cpp.html">
</section>
<section title="signal_info.h" ref="signal__info_8h.html">
<section title="SignalInfo" ref="structSignalInfo.html">
<section title="name" ref="structSignalInfo.html#a379e422a00cad56f896cacf60455b088"/>
<section title="startBit" ref="structSignalInfo.html#ace290724f9801521609aedaa946d61f1"/>
<section title="length" ref="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa"/>
<section title="isLittleEndian" ref="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c"/>
<section title="isSigned" ref="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f"/>
<section title="factor" ref="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499"/>
<section title="offset" ref="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e"/>
<section title="minimum" ref="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b"/>
<section title="maximum" ref="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52"/>
<section title="unit" ref="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01"/>
<section title="receivers" ref="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3"/>
<section title="comment" ref="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5"/>
</section>
</section>
<section title="tree_node.cpp" ref="tree__node_8cpp.html"/>
<section title="tree_node.h" ref="tree__node_8h.html">
<section title="TreeNode" ref="classTreeNode.html">
<section title="TreeNode" ref="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d"/>
<section title="TreeNode" ref="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc"/>
<section title="TreeNode" ref="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae"/>
<section title="AddChild" ref="classTreeNode.html#a6161f2ebb92184eab4215d121870e788"/>
<section title="GetChildCount" ref="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea"/>
<section title="GetChild" ref="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6"/>
<section title="GetChild" ref="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f"/>
<section title="GetType" ref="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9"/>
<section title="GetName" ref="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18"/>
<section title="GetFrame" ref="classTreeNode.html#afc503b40004764163605d6dbdb4ef811"/>
<section title="GetSignal" ref="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1"/>
</section>
<section title="NodeType" ref="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16">
<section title="Root" ref="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad"/>
<section title="Frame" ref="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a"/>
<section title="Signal" ref="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398"/>
</section>
</section>
</section>
<section title="File Members" ref="globals.html">
<section title="All" ref="globals.html"/>
<section title="Enumerations" ref="globals_enum.html"/>
</section>
</section>
</section>
</toc>
<keywords>
<keyword name="DbcDatabase" id="DbcDatabase_" ref="structDbcDatabase.html"/>
<keyword name="DbcDecodeBuilder" id="DbcDecodeBuilder_" ref="classDbcDecodeBuilder.html"/>
<keyword name="DbcDecoder" id="DbcDecoder_" ref="classDbcDecoder.html"/>
<keyword name="DbcParser" id="DbcParser_" ref="classDbcParser.html"/>
<keyword name="DbcTreeBuilder" id="DbcTreeBuilder_" ref="classDbcTreeBuilder.html"/>
<keyword name="DecodeDatabase" id="DecodeDatabase_" ref="structDecodeDatabase.html"/>
<keyword name="DecodedFrameValue" id="DecodedFrameValue_" ref="structDecodedFrameValue.html"/>
<keyword name="DecodedSignalValue" id="DecodedSignalValue_" ref="structDecodedSignalValue.html"/>
<keyword name="DecodeFrame" id="DecodeFrame_" ref="structDecodeFrame.html"/>
<keyword name="DecodeSignal" id="DecodeSignal_" ref="structDecodeSignal.html"/>
<keyword name="FrameInfo" id="FrameInfo_" ref="structFrameInfo.html"/>
<keyword name="FrameKey" id="FrameKey_" ref="structFrameKey.html"/>
<keyword name="FrameKeyHasher" id="FrameKeyHasher_" ref="structFrameKeyHasher.html"/>
<keyword name="RawCanFrame" id="RawCanFrame_" ref="structRawCanFrame.html"/>
<keyword name="SignalInfo" id="SignalInfo_" ref="structSignalInfo.html"/>
<keyword name="TreeNode" id="TreeNode_" ref="classTreeNode.html"/>
<keyword name="DBC Parser and Runtime Decode Module Documentation" id="DBC Parser and Runtime Decode Module Documentation_" ref="md_README.html"/>
<keyword name="AddChild(std::unique_ptr&lt; TreeNode &gt; child)" id="TreeNode::AddChild_a6161f2ebb92184eab4215d121870e788" ref="classTreeNode.html#a6161f2ebb92184eab4215d121870e788"/>
<keyword name="Build(const DbcDatabase &amp;source) const" id="DbcDecodeBuilder::Build_a2bc6386dfb5e58976c42e22c19ec471b" ref="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b"/>
<keyword name="Build(const DbcDatabase &amp;database) const" id="DbcTreeBuilder::Build_a7e57d067d831b14b383947fd125edd4b" ref="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b"/>
<keyword name="byteOrder" id="DecodeSignal::byteOrder_abdc4c4bb4a67a6d61d6ca81e8a52833d" ref="structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d"/>
<keyword name="canId" id="RawCanFrame::canId_a2d0e7fa0e3d5c20bbed55ed8f7888ff4" ref="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4"/>
<keyword name="canId" id="DecodeFrame::canId_a52e10215388db7df8b541b9d9909edcf" ref="structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf"/>
<keyword name="canId" id="FrameInfo::canId_af470b0742c05bfbffc31c51a68f5c05e" ref="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e"/>
<keyword name="comment" id="DecodeSignal::comment_ae28c905d4a2bc86419c2a8361bfea473" ref="structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473"/>
<keyword name="comment" id="DecodeFrame::comment_a25819ef907a32391af5c9f7cae9cdb22" ref="structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22"/>
<keyword name="comment" id="FrameInfo::comment_ace75121294f9d89b762080ab5643293c" ref="structFrameInfo.html#ace75121294f9d89b762080ab5643293c"/>
<keyword name="comment" id="SignalInfo::comment_ac99ba7563a5dad01e39c4257216953f5" ref="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5"/>
<keyword name="data" id="RawCanFrame::data_a0acb487612104c99c9907344c035df83" ref="structRawCanFrame.html#a0acb487612104c99c9907344c035df83"/>
<keyword name="Decode(const DecodeDatabase &amp;database, const RawCanFrame &amp;frame) const" id="DbcDecoder::Decode_a345951ffe5d943a70d3a1ea1f39e74f7" ref="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7"/>
<keyword name="definition" id="DecodedSignalValue::definition_acadc3b3bb21dd6b0412d342c7e6b20d7" ref="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7"/>
<keyword name="definition" id="DecodedFrameValue::definition_a60dda1cc352d2c8087f0bdbc81dd266c" ref="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c"/>
<keyword name="dlc" id="DecodeFrame::dlc_a51111ac13988be372d5673d12cf3e060" ref="structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060"/>
<keyword name="dlc" id="FrameInfo::dlc_aa2b198ea0f55e560c123d35e7b3ecab9" ref="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9"/>
<keyword name="factor" id="DecodeSignal::factor_a428c39913a366a8476dd291061354391" ref="structDecodeSignal.html#a428c39913a366a8476dd291061354391"/>
<keyword name="factor" id="SignalInfo::factor_ae4f78d99a2750aa564d7eba860171499" ref="structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499"/>
<keyword name="FindFrame(const DecodeDatabase &amp;database, std::uint32_t canId, bool isExtended) const" id="DbcDecoder::FindFrame_ab2cfb2fb711c95d3a29365546b89f3da" ref="classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da"/>
<keyword name="frames" id="DbcDatabase::frames_a2cade5d0234ee816132127542f8c612b" ref="structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b"/>
<keyword name="GetChild(std::size_t index) const" id="TreeNode::GetChild_a4727ff801a2d1b9323c5ae50a35457a6" ref="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6"/>
<keyword name="GetChild(std::size_t index)" id="TreeNode::GetChild_a81047bd7d2a4cc96b9ef5e20d0d63b5f" ref="classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f"/>
<keyword name="GetChildCount() const" id="TreeNode::GetChildCount_abdd82460187dca8d3e5d66f5d5c529ea" ref="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea"/>
<keyword name="GetFrame() const" id="TreeNode::GetFrame_afc503b40004764163605d6dbdb4ef811" ref="classTreeNode.html#afc503b40004764163605d6dbdb4ef811"/>
<keyword name="GetName() const" id="TreeNode::GetName_aaac5b8d9dc9e5ae1f367d1adbcf20e18" ref="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18"/>
<keyword name="GetSignal() const" id="TreeNode::GetSignal_a226518612d0d00b5988a2c44fc21d3f1" ref="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1"/>
<keyword name="GetType() const" id="TreeNode::GetType_afa2f4b0aafa12d3d41ed00df8e0250c9" ref="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9"/>
<keyword name="hasPgn" id="DecodeFrame::hasPgn_a2551102670c4a540fced4c71da0b369d" ref="structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d"/>
<keyword name="hasPgn" id="FrameInfo::hasPgn_a4737a5420213ad4304724e39f3a4e55d" ref="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d"/>
<keyword name="isExtended" id="RawCanFrame::isExtended_a462193d275adc1dba8bd18ffa0e36bb7" ref="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7"/>
<keyword name="isExtended" id="DecodeFrame::isExtended_a3ee2348d781f8f15aaf87e8dcf57ec41" ref="structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41"/>
<keyword name="isExtended" id="FrameInfo::isExtended_a34b726afaad2ac5c697fdb2ac070cdaf" ref="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf"/>
<keyword name="isLittleEndian" id="SignalInfo::isLittleEndian_af363b1563fb4c7cc8973f9a80c06846c" ref="structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c"/>
<keyword name="isSigned" id="SignalInfo::isSigned_a52a52b320eef92fbcb4626307f9a498f" ref="structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f"/>
<keyword name="length" id="DecodeSignal::length_acd4ef5ee30421d117b5756854302debb" ref="structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb"/>
<keyword name="length" id="SignalInfo::length_a1008b5201f71848177217bd52fb84baa" ref="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa"/>
<keyword name="maximum" id="DecodeSignal::maximum_a4a6ba87142a9badbf0ca830e9e709cb7" ref="structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7"/>
<keyword name="maximum" id="SignalInfo::maximum_adf1c4331b9eabced0d7fdda40ff0eb52" ref="structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52"/>
<keyword name="minimum" id="DecodeSignal::minimum_a0fb84e19a0ab3bd50b6f65c1075ebc25" ref="structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25"/>
<keyword name="minimum" id="SignalInfo::minimum_ada7bf94fbeaa26bd08c73982b5af255b" ref="structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b"/>
<keyword name="name" id="DecodeSignal::name_a58cf5844f2272a23dcb9687d912e4780" ref="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780"/>
<keyword name="name" id="DecodeFrame::name_aa0a7f8fd5bfde2148dfd0d838328f579" ref="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579"/>
<keyword name="name" id="FrameInfo::name_abb53a7f93ed7abc0ea1ae4a8ccafcdcb" ref="structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb"/>
<keyword name="name" id="SignalInfo::name_a379e422a00cad56f896cacf60455b088" ref="structSignalInfo.html#a379e422a00cad56f896cacf60455b088"/>
<keyword name="offset" id="DecodeSignal::offset_a92db637af4e224a0ae70173050dc3f74" ref="structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74"/>
<keyword name="offset" id="SignalInfo::offset_ab7d0769f47aa540656b22e4e49db517e" ref="structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e"/>
<keyword name="ParseFile(const std::string &amp;filePath) const" id="DbcParser::ParseFile_aef72826942c9095d653fafa435855e56" ref="classDbcParser.html#aef72826942c9095d653fafa435855e56"/>
<keyword name="pgn" id="DecodeFrame::pgn_a1d3c54055c0cbceb73adf551f7067f23" ref="structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23"/>
<keyword name="pgn" id="FrameInfo::pgn_aee518b33f1000bf0b7f6e4a87474c943" ref="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943"/>
<keyword name="physicalValue" id="DecodedSignalValue::physicalValue_a6847d05b3cb00d5e0f6c611968f57978" ref="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978"/>
<keyword name="public" id="DecodedFrameValue::public_adae123ac7fbb4a5c314b64b01109f4a8" ref="structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8"/>
<keyword name="public" id="DecodeFrame::public_a7f4e71bbdec3f424b625e724e3dfbf14" ref="structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14"/>
<keyword name="public" id="FrameInfo::public_a3f7e25d67ddae22f2ed50823a5a26084" ref="structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084"/>
<keyword name="rawValue" id="DecodedSignalValue::rawValue_a5138b825940e34689f7b3891627ee9ec" ref="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec"/>
<keyword name="receivers" id="DecodeSignal::receivers_abdbae62a64d2df716bf60c6b67b30eaa" ref="structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa"/>
<keyword name="receivers" id="SignalInfo::receivers_a2c95562fd0b29327a7fd7b1e6feee7f3" ref="structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3"/>
<keyword name="startBit" id="DecodeSignal::startBit_aaf5d7527ddf65b6355c2b4f3626df22d" ref="structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d"/>
<keyword name="startBit" id="SignalInfo::startBit_ace290724f9801521609aedaa946d61f1" ref="structSignalInfo.html#ace290724f9801521609aedaa946d61f1"/>
<keyword name="transmitter" id="DecodeFrame::transmitter_ad78241dc40c793aabb8495b6989b81a9" ref="structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9"/>
<keyword name="transmitter" id="FrameInfo::transmitter_a92749ec3798d4211a505860fb389a9e8" ref="structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8"/>
<keyword name="TreeNode()" id="TreeNode::TreeNode_a984a98d5ccf7ef1f5a18094c6821f35d" ref="classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d"/>
<keyword name="TreeNode(const FrameInfo &amp;frame)" id="TreeNode::TreeNode_a8e38dd591d8801d7ee3a7dbad90c67fc" ref="classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc"/>
<keyword name="TreeNode(const SignalInfo &amp;signal)" id="TreeNode::TreeNode_ab9f00f5253d56461bb2d420fd639c5ae" ref="classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae"/>
<keyword name="unit" id="DecodeSignal::unit_a38eed9ca7581423fd8bfbedcffc12092" ref="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092"/>
<keyword name="unit" id="SignalInfo::unit_a1f214f03e94ef5794de2d3367bfcbd01" ref="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01"/>
<keyword name="valid" id="DecodedSignalValue::valid_aac0ed361af545cde48d0e6f41a859686" ref="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686"/>
<keyword name="valid" id="DecodedFrameValue::valid_a4f51c31110dba1f73a763c596372beb0" ref="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0"/>
<keyword name="valueType" id="DecodeSignal::valueType_a9d37638129263b8902ba5be59baf39a8" ref="structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8"/>
<keyword name="ByteOrder" id="decode_database.h::ByteOrder_aaeb92d42f5a6e27b8ba19f18d69d142b" ref="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b"/>
<keyword name="Intel" id="decode_database.h::Intel_aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5" ref="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5"/>
<keyword name="Motorola" id="decode_database.h::Motorola_aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31" ref="decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31"/>
<keyword name="NodeType" id="tree_node.h::NodeType_acac9cbaeea226ed297804c012dc12b16" ref="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16"/>
<keyword name="Root" id="tree_node.h::Root_acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad" ref="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad"/>
<keyword name="Frame" id="tree_node.h::Frame_acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a" ref="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a"/>
<keyword name="Signal" id="tree_node.h::Signal_acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398" ref="tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398"/>
<keyword name="ValueType" id="decode_database.h::ValueType_ad9971b6ef33e02ba2c75d19c1d2518a1" ref="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1"/>
<keyword name="Unsigned" id="decode_database.h::Unsigned_ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a" ref="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a"/>
<keyword name="Signed" id="decode_database.h::Signed_ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379" ref="decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379"/>
</keywords>
<files>
<file>annotated.html</file>
<file>bc_s.png</file>
<file>bdwn.png</file>
<file>classDbcDecodeBuilder-members.html</file>
<file>classDbcDecodeBuilder.html</file>
<file>classDbcDecoder-members.html</file>
<file>classDbcDecoder.html</file>
<file>classDbcParser-members.html</file>
<file>classDbcParser.html</file>
<file>classDbcTreeBuilder-members.html</file>
<file>classDbcTreeBuilder.html</file>
<file>classTreeNode-members.html</file>
<file>classTreeNode.html</file>
<file>classes.html</file>
<file>closed.png</file>
<file>dbc__database_8h.html</file>
<file>dbc__database_8h_source.html</file>
<file>dbc__decode__builder_8cpp.html</file>
<file>dbc__decode__builder_8cpp_source.html</file>
<file>dbc__decode__builder_8h.html</file>
<file>dbc__decode__builder_8h_source.html</file>
<file>dbc__decoder_8cpp.html</file>
<file>dbc__decoder_8cpp_source.html</file>
<file>dbc__decoder_8h.html</file>
<file>dbc__decoder_8h_source.html</file>
<file>dbc__parser_8cpp.html</file>
<file>dbc__parser_8cpp_source.html</file>
<file>dbc__parser_8h.html</file>
<file>dbc__parser_8h_source.html</file>
<file>dbc__tree__builder_8cpp.html</file>
<file>dbc__tree__builder_8cpp_source.html</file>
<file>dbc__tree__builder_8h.html</file>
<file>dbc__tree__builder_8h_source.html</file>
<file>decode__database_8h.html</file>
<file>decode__database_8h_source.html</file>
<file>doc.png</file>
<file>doxygen.css</file>
<file>doxygen.svg</file>
<file>dynsections.js</file>
<file>files.html</file>
<file>folderclosed.png</file>
<file>folderopen.png</file>
<file>frame__info_8h.html</file>
<file>frame__info_8h_source.html</file>
<file>functions.html</file>
<file>functions_func.html</file>
<file>functions_vars.html</file>
<file>globals.html</file>
<file>globals_enum.html</file>
<file>graph_legend.html</file>
<file>graph_legend.svg</file>
<file>index.html</file>
<file>jquery.js</file>
<file>main_8cpp.html</file>
<file>main_8cpp_source.html</file>
<file>md_README.html</file>
<file>menu.js</file>
<file>menudata.js</file>
<file>nav_f.png</file>
<file>nav_g.png</file>
<file>nav_h.png</file>
<file>open.png</file>
<file>pages.html</file>
<file>search/close.svg</file>
<file>search/mag_sel.svg</file>
<file>search/search.css</file>
<file>search/search.js</file>
<file>search/search_l.png</file>
<file>search/search_m.png</file>
<file>search/search_r.png</file>
<file>signal__info_8h.html</file>
<file>signal__info_8h_source.html</file>
<file>splitbar.png</file>
<file>structDbcDatabase-members.html</file>
<file>structDbcDatabase.html</file>
<file>structDecodeDatabase-members.html</file>
<file>structDecodeDatabase.html</file>
<file>structDecodeFrame-members.html</file>
<file>structDecodeFrame.html</file>
<file>structDecodeSignal-members.html</file>
<file>structDecodeSignal.html</file>
<file>structDecodedFrameValue-members.html</file>
<file>structDecodedFrameValue.html</file>
<file>structDecodedSignalValue-members.html</file>
<file>structDecodedSignalValue.html</file>
<file>structFrameInfo-members.html</file>
<file>structFrameInfo.html</file>
<file>structFrameKey-members.html</file>
<file>structFrameKey.html</file>
<file>structFrameKeyHasher-members.html</file>
<file>structFrameKeyHasher.html</file>
<file>structRawCanFrame-members.html</file>
<file>structRawCanFrame.html</file>
<file>structSignalInfo-members.html</file>
<file>structSignalInfo.html</file>
<file>svgpan.js</file>
<file>sync_off.png</file>
<file>sync_on.png</file>
<file>tab_a.png</file>
<file>tab_b.png</file>
<file>tab_h.png</file>
<file>tab_s.png</file>
<file>tabs.css</file>
<file>tree__node_8cpp.html</file>
<file>tree__node_8cpp_source.html</file>
<file>tree__node_8h.html</file>
<file>tree__node_8h_source.html</file>
</files>
</filterSection>
</QtHelpProject>

35
docs/html/jquery.js vendored Normal file

File diff suppressed because one or more lines are too long

157
docs/html/main_8cpp.html Normal file
View File

@@ -0,0 +1,157 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: main.cpp File 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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('main_8cpp.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">main.cpp File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;iostream&gt;</code><br />
<code>#include &lt;iomanip&gt;</code><br />
<code>#include &lt;memory&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;cstddef&gt;</code><br />
<code>#include &quot;<a class="el" href="dbc__parser_8h_source.html">dbc_parser.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="dbc__tree__builder_8h_source.html">dbc_tree_builder.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="dbc__decode__builder_8h_source.html">dbc_decode_builder.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="dbc__decoder_8h_source.html">dbc_decoder.h</a>&quot;</code><br />
</div>
<p><a href="main_8cpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="main_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
<tr class="separator:a0ddf1224851353fc92bfbff6f499fa97"><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>
<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="main_8cpp_source.html">main.cpp</a>.</p>
</div><h2 class="groupheader">Function Documentation</h2>
<a id="a0ddf1224851353fc92bfbff6f499fa97" name="a0ddf1224851353fc92bfbff6f499fa97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0ddf1224851353fc92bfbff6f499fa97">&#9670;&nbsp;</a></span>main()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int main </td>
<td>(</td>
<td class="paramtype">int&#160;</td>
<td class="paramname"><em>argc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&#160;</td>
<td class="paramname"><em>argv</em>[]&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00097">97</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
</div>
</div>
</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="main_8cpp.html">main.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

View File

@@ -0,0 +1,271 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: main.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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('main_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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">main.cpp</div></div>
</div><!--header-->
<div class="contents">
<a href="main_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 &lt;iostream&gt;</span></div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="preprocessor">#include &lt;iomanip&gt;</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#include &lt;memory&gt;</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span> </div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#include &quot;<a class="code" href="dbc__parser_8h.html">dbc_parser.h</a>&quot;</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="dbc__tree__builder_8h.html">dbc_tree_builder.h</a>&quot;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &quot;<a class="code" href="dbc__decode__builder_8h.html">dbc_decode_builder.h</a>&quot;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</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="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">static</span> <span class="keywordtype">void</span> PrintTree (<span class="keyword">const</span> <a class="code hl_class" href="classTreeNode.html">TreeNode</a> *node, <span class="keywordtype">int</span> indent) {</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> <span class="keywordflow">if</span> (node == <span class="keyword">nullptr</span>)</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> </div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; indent; ++i)</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> std::cout &lt;&lt; <span class="stringliteral">&quot; &quot;</span>;</div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span> <span class="keywordflow">switch</span> (node-&gt;<a class="code hl_function" href="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9">GetType</a>()) {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keywordflow">case</span> NodeType::Root:</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> std::cout &lt;&lt; <span class="stringliteral">&quot;[root] &quot;</span> &lt;&lt; node-&gt;<a class="code hl_function" href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">GetName</a>() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keywordflow">break</span>;</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> <span class="keywordflow">case</span> NodeType::Frame: {</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">const</span> <a class="code hl_struct" href="structFrameInfo.html">FrameInfo</a> *frame = node-&gt;<a class="code hl_function" href="classTreeNode.html#afc503b40004764163605d6dbdb4ef811">GetFrame</a>();</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> std::cout &lt;&lt; <span class="stringliteral">&quot;[frame] &quot;</span> &lt;&lt; node-&gt;<a class="code hl_function" href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">GetName</a>();</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keywordflow">if</span> (frame != <span class="keyword">nullptr</span>) {</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> std::cout &lt;&lt; <span class="stringliteral">&quot; id=0x&quot;</span> &lt;&lt; std::hex &lt;&lt; frame-&gt;<a class="code hl_variable" href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">canId</a> &lt;&lt; std::dec</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span> &lt;&lt; <span class="stringliteral">&quot; ext=&quot;</span> &lt;&lt; (frame-&gt;<a class="code hl_variable" href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">isExtended</a> ? <span class="stringliteral">&quot;yes&quot;</span> : <span class="stringliteral">&quot;no&quot;</span>)</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> &lt;&lt; <span class="stringliteral">&quot; dlc=&quot;</span> &lt;&lt; <span class="keyword">static_cast&lt;</span><span class="keywordtype">unsigned</span> <span class="keywordtype">int</span><span class="keyword">&gt;</span> (frame-&gt;<a class="code hl_variable" href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">dlc</a>);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> </div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> <span class="keywordflow">if</span> (frame-&gt;<a class="code hl_variable" href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">hasPgn</a>)</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> std::cout &lt;&lt; <span class="stringliteral">&quot; pgn=&quot;</span> &lt;&lt; frame-&gt;<a class="code hl_variable" href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">pgn</a>;</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> </div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> std::cout &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> }</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> <span class="keywordflow">case</span> NodeType::Signal: {</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="keyword">const</span> <a class="code hl_struct" href="structSignalInfo.html">SignalInfo</a> *signal = node-&gt;<a class="code hl_function" href="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1">GetSignal</a>();</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> std::cout &lt;&lt; <span class="stringliteral">&quot;[signal] &quot;</span> &lt;&lt; node-&gt;<a class="code hl_function" href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">GetName</a>();</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">if</span> (signal != <span class="keyword">nullptr</span>) {</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> std::cout &lt;&lt; <span class="stringliteral">&quot; start=&quot;</span> &lt;&lt; signal-&gt;<a class="code hl_variable" href="structSignalInfo.html#ace290724f9801521609aedaa946d61f1">startBit</a></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> &lt;&lt; <span class="stringliteral">&quot; len=&quot;</span> &lt;&lt; signal-&gt;<a class="code hl_variable" href="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa">length</a></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> &lt;&lt; <span class="stringliteral">&quot; unit=&quot;</span> &lt;&lt; signal-&gt;<a class="code hl_variable" href="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01">unit</a>;</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> }</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> std::cout &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keywordflow">break</span>;</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> <span class="keywordflow">default</span>:</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> std::cout &lt;&lt; <span class="stringliteral">&quot;[unknown]\n&quot;</span>;</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">break</span>;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> }</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="keywordflow">for</span> (std::size_t i = 0U; i &lt; node-&gt;<a class="code hl_function" href="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea">GetChildCount</a>(); ++i)</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> PrintTree (node-&gt;<a class="code hl_function" href="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6">GetChild</a> (i), indent + 1);</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span>}</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><span class="keyword">static</span> <span class="keywordtype">void</span> PrintDecodedFrame (<span class="keyword">const</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> &amp;decoded) {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> <span class="keywordflow">if</span> (!decoded.<a class="code hl_variable" href="structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0">valid</a> || (decoded.<a class="code hl_variable" href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">definition</a> == <span class="keyword">nullptr</span>)) {</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> std::cout &lt;&lt; <span class="stringliteral">&quot;No frame definition found.\n&quot;</span>;</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <span class="keywordflow">return</span>;</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> std::cout &lt;&lt; <span class="stringliteral">&quot;Decoded frame: &quot;</span> &lt;&lt; decoded.<a class="code hl_variable" href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">definition</a>-&gt;<a class="code hl_variable" href="structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579">name</a> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> </div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> <span class="keywordflow">for</span> (std::size_t index = 0U; index &lt; decoded.signals.size(); ++index) {</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span> <span class="keyword">const</span> <a class="code hl_struct" href="structDecodedSignalValue.html">DecodedSignalValue</a> &amp;signal = decoded.signals[index];</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> <span class="keywordflow">if</span> ((signal.<a class="code hl_variable" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">definition</a> == <span class="keyword">nullptr</span>) || !signal.<a class="code hl_variable" href="structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686">valid</a>)</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> <span class="keywordflow">continue</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> std::cout &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; signal.<a class="code hl_variable" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">definition</a>-&gt;<a class="code hl_variable" href="structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780">name</a></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> &lt;&lt; <span class="stringliteral">&quot; raw=&quot;</span> &lt;&lt; signal.<a class="code hl_variable" href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">rawValue</a></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> &lt;&lt; <span class="stringliteral">&quot; physical=&quot;</span> &lt;&lt; signal.<a class="code hl_variable" href="structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978">physicalValue</a></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> &lt;&lt; <span class="stringliteral">&quot; &quot;</span> &lt;&lt; signal.<a class="code hl_variable" href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">definition</a>-&gt;<a class="code hl_variable" href="structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092">unit</a></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> &lt;&lt; <span class="stringliteral">&quot;\n&quot;</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>}</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="keywordtype">int</span> main (<span class="keywordtype">int</span> argc, <span class="keywordtype">char</span> *argv[]) {</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">if</span> (argc &lt; 2) {</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> std::cerr &lt;&lt; <span class="stringliteral">&quot;Usage: dbc_demo &lt;file.dbc&gt;\n&quot;</span>;</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="keywordflow">return</span> 1;</div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> }</div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="keywordflow">try</span> {</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> <a class="code hl_class" href="classDbcParser.html">DbcParser</a> parser;</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> database = parser.<a class="code hl_function" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">ParseFile</a> (argv[1]);</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> <a class="code hl_class" href="classDbcTreeBuilder.html">DbcTreeBuilder</a> treeBuilder;</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> std::unique_ptr&lt;TreeNode&gt; root = treeBuilder.<a class="code hl_function" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">Build</a> (database);</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> std::cout &lt;&lt; <span class="stringliteral">&quot;=== Parsed tree ===\n&quot;</span>;</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> PrintTree (root.get(), 0);</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> <a class="code hl_class" href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a> decodeBuilder;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_struct" href="structDecodeDatabase.html">DecodeDatabase</a> decodeDatabase = decodeBuilder.<a class="code hl_function" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">Build</a> (database);</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> <span class="comment">/*</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"> * Example raw frame.</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"> * Replace with live CAN frame or trace record later.</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment"> */</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> <a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> rawFrame;</div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> rawFrame.<a class="code hl_variable" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">canId</a> = decodeDatabase.frames.empty() ? 0U : decodeDatabase.frames[0].canId;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> rawFrame.<a class="code hl_variable" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">isExtended</a> = decodeDatabase.frames.empty() ? false : decodeDatabase.frames[0].isExtended;</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> rawFrame.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a>.resize (8U, 0U);</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_class" href="classDbcDecoder.html">DbcDecoder</a> decoder;</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> decoded = decoder.<a class="code hl_function" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">Decode</a> (decodeDatabase, rawFrame);</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> std::cout &lt;&lt; <span class="stringliteral">&quot;\n=== Decoded frame ===\n&quot;</span>;</div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> PrintDecodedFrame (decoded);</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception &amp;ex) {</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> std::cerr &lt;&lt; <span class="stringliteral">&quot;Error: &quot;</span> &lt;&lt; ex.what() &lt;&lt; <span class="stringliteral">&quot;\n&quot;</span>;</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <span class="keywordflow">return</span> 2;</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</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">return</span> 0;</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</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#l00014">dbc_decode_builder.cpp:14</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#l00070">dbc_decoder.h:70</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#l00031">dbc_decoder.cpp:31</a></div></div>
<div class="ttc" id="aclassDbcParser_html"><div class="ttname"><a href="classDbcParser.html">DbcParser</a></div><div class="ttdoc">Minimal DBC parser.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__parser_8h_source.html#l00035">dbc_parser.h:35</a></div></div>
<div class="ttc" id="aclassDbcParser_html_aef72826942c9095d653fafa435855e56"><div class="ttname"><a href="classDbcParser.html#aef72826942c9095d653fafa435855e56">DbcParser::ParseFile</a></div><div class="ttdeci">DbcDatabase ParseFile(const std::string &amp;filePath) const</div><div class="ttdoc">Parse DBC file.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__parser_8cpp_source.html#l00040">dbc_parser.cpp:40</a></div></div>
<div class="ttc" id="aclassDbcTreeBuilder_html"><div class="ttname"><a href="classDbcTreeBuilder.html">DbcTreeBuilder</a></div><div class="ttdoc">Builds a simple tree from parsed DBC database.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__tree__builder_8h_source.html#l00023">dbc_tree_builder.h:23</a></div></div>
<div class="ttc" id="aclassDbcTreeBuilder_html_a7e57d067d831b14b383947fd125edd4b"><div class="ttname"><a href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">DbcTreeBuilder::Build</a></div><div class="ttdeci">std::unique_ptr&lt; TreeNode &gt; Build(const DbcDatabase &amp;database) const</div><div class="ttdoc">Build tree representation of parsed DBC data.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__tree__builder_8cpp_source.html#l00014">dbc_tree_builder.cpp:14</a></div></div>
<div class="ttc" id="aclassTreeNode_html"><div class="ttname"><a href="classTreeNode.html">TreeNode</a></div><div class="ttdoc">Tree node for later use in model/view or other hierarchy consumers.</div><div class="ttdef"><b>Definition:</b> <a href="tree__node_8h_source.html#l00035">tree_node.h:35</a></div></div>
<div class="ttc" id="aclassTreeNode_html_a226518612d0d00b5988a2c44fc21d3f1"><div class="ttname"><a href="classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1">TreeNode::GetSignal</a></div><div class="ttdeci">const SignalInfo * GetSignal() const</div><div class="ttdoc">Get signal payload if node is signal.</div><div class="ttdef"><b>Definition:</b> <a href="tree__node_8cpp_source.html#l00073">tree_node.cpp:73</a></div></div>
<div class="ttc" id="aclassTreeNode_html_a4727ff801a2d1b9323c5ae50a35457a6"><div class="ttname"><a href="classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6">TreeNode::GetChild</a></div><div class="ttdeci">const TreeNode * GetChild(std::size_t index) const</div><div class="ttdoc">Get child by index.</div><div class="ttdef"><b>Definition:</b> <a href="tree__node_8cpp_source.html#l00047">tree_node.cpp:47</a></div></div>
<div class="ttc" id="aclassTreeNode_html_aaac5b8d9dc9e5ae1f367d1adbcf20e18"><div class="ttname"><a href="classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18">TreeNode::GetName</a></div><div class="ttdeci">const std::string &amp; GetName() const</div><div class="ttdoc">Get display name.</div><div class="ttdef"><b>Definition:</b> <a href="tree__node_8cpp_source.html#l00065">tree_node.cpp:65</a></div></div>
<div class="ttc" id="aclassTreeNode_html_abdd82460187dca8d3e5d66f5d5c529ea"><div class="ttname"><a href="classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea">TreeNode::GetChildCount</a></div><div class="ttdeci">std::size_t GetChildCount() const</div><div class="ttdoc">Get child count.</div><div class="ttdef"><b>Definition:</b> <a href="tree__node_8cpp_source.html#l00043">tree_node.cpp:43</a></div></div>
<div class="ttc" id="aclassTreeNode_html_afa2f4b0aafa12d3d41ed00df8e0250c9"><div class="ttname"><a href="classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9">TreeNode::GetType</a></div><div class="ttdeci">NodeType GetType() const</div><div class="ttdoc">Get node type.</div><div class="ttdef"><b>Definition:</b> <a href="tree__node_8cpp_source.html#l00061">tree_node.cpp:61</a></div></div>
<div class="ttc" id="aclassTreeNode_html_afc503b40004764163605d6dbdb4ef811"><div class="ttname"><a href="classTreeNode.html#afc503b40004764163605d6dbdb4ef811">TreeNode::GetFrame</a></div><div class="ttdeci">const FrameInfo * GetFrame() const</div><div class="ttdoc">Get frame payload if node is frame.</div><div class="ttdef"><b>Definition:</b> <a href="tree__node_8cpp_source.html#l00069">tree_node.cpp:69</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="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__parser_8h_html"><div class="ttname"><a href="dbc__parser_8h.html">dbc_parser.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</div></div>
<div class="ttc" id="adbc__tree__builder_8h_html"><div class="ttname"><a href="dbc__tree__builder_8h.html">dbc_tree_builder.h</a></div><div class="ttdoc">Created: 2026-03-13 Author: Deeaitch (Dim. Himro)</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="astructDecodeDatabase_html"><div class="ttname"><a href="structDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Runtime decode database with fast lookup by CAN ID.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00132">decode_database.h:132</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#l00073">decode_database.h:73</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#l00049">decode_database.h:49</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#l00040">decode_database.h:40</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#l00055">dbc_decoder.h:55</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#l00058">dbc_decoder.h:58</a></div></div>
<div class="ttc" id="astructDecodedFrameValue_html_a60dda1cc352d2c8087f0bdbc81dd266c"><div class="ttname"><a href="structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c">DecodedFrameValue::definition</a></div><div class="ttdeci">const DecodeFrame * definition</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"><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#l00038">dbc_decoder.h:38</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_a5138b825940e34689f7b3891627ee9ec"><div class="ttname"><a href="structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec">DecodedSignalValue::rawValue</a></div><div class="ttdeci">std::int64_t rawValue</div><div class="ttdef"><b>Definition:</b> <a href="dbc__decoder_8h_source.html#l00040">dbc_decoder.h:40</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#l00041">dbc_decoder.h:41</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#l00042">dbc_decoder.h:42</a></div></div>
<div class="ttc" id="astructDecodedSignalValue_html_acadc3b3bb21dd6b0412d342c7e6b20d7"><div class="ttname"><a href="structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7">DecodedSignalValue::definition</a></div><div class="ttdeci">const DecodeSignal * definition</div><div class="ttdef"><b>Definition:</b> <a href="dbc__decoder_8h_source.html#l00039">dbc_decoder.h:39</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="astructFrameInfo_html_a34b726afaad2ac5c697fdb2ac070cdaf"><div class="ttname"><a href="structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf">FrameInfo::isExtended</a></div><div class="ttdeci">bool isExtended</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00027">frame_info.h:27</a></div></div>
<div class="ttc" id="astructFrameInfo_html_a4737a5420213ad4304724e39f3a4e55d"><div class="ttname"><a href="structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d">FrameInfo::hasPgn</a></div><div class="ttdeci">bool hasPgn</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00029">frame_info.h:29</a></div></div>
<div class="ttc" id="astructFrameInfo_html_aa2b198ea0f55e560c123d35e7b3ecab9"><div class="ttname"><a href="structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9">FrameInfo::dlc</a></div><div class="ttdeci">std::uint8_t dlc</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00030">frame_info.h:30</a></div></div>
<div class="ttc" id="astructFrameInfo_html_aee518b33f1000bf0b7f6e4a87474c943"><div class="ttname"><a href="structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943">FrameInfo::pgn</a></div><div class="ttdeci">std::uint32_t pgn</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00028">frame_info.h:28</a></div></div>
<div class="ttc" id="astructFrameInfo_html_af470b0742c05bfbffc31c51a68f5c05e"><div class="ttname"><a href="structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e">FrameInfo::canId</a></div><div class="ttdeci">std::uint32_t canId</div><div class="ttdef"><b>Definition:</b> <a href="frame__info_8h_source.html#l00026">frame_info.h:26</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#l00023">dbc_decoder.h:23</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#l00026">dbc_decoder.h:26</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#l00024">dbc_decoder.h:24</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#l00025">dbc_decoder.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#l00022">signal_info.h:22</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a1008b5201f71848177217bd52fb84baa"><div class="ttname"><a href="structSignalInfo.html#a1008b5201f71848177217bd52fb84baa">SignalInfo::length</a></div><div class="ttdeci">std::uint32_t length</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00025">signal_info.h:25</a></div></div>
<div class="ttc" id="astructSignalInfo_html_a1f214f03e94ef5794de2d3367bfcbd01"><div class="ttname"><a href="structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01">SignalInfo::unit</a></div><div class="ttdeci">std::string unit</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00032">signal_info.h:32</a></div></div>
<div class="ttc" id="astructSignalInfo_html_ace290724f9801521609aedaa946d61f1"><div class="ttname"><a href="structSignalInfo.html#ace290724f9801521609aedaa946d61f1">SignalInfo::startBit</a></div><div class="ttdeci">std::uint32_t startBit</div><div class="ttdef"><b>Definition:</b> <a href="signal__info_8h_source.html#l00024">signal_info.h:24</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="main_8cpp.html">main.cpp</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.4 </li>
</ul>
</div>
</body>
</html>

788
docs/html/md_README.html Normal file
View File

@@ -0,0 +1,788 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: DBC Parser and Runtime Decode Module Documentation</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('md_README.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div><div class="header">
<div class="headertitle"><div class="title">DBC Parser and Runtime Decode Module Documentation </div></div>
</div><!--header-->
<div class="contents">
<div class="textblock"><h1><a class="anchor" id="autotoc_md1"></a>
Overview</h1>
<p >This module provides a minimal but extensible DBC parser and runtime decode foundation for the <b>FrameTap</b> project.</p>
<p >Its purpose is to:</p>
<ul>
<li>parse DBC files</li>
<li>store parsed frame and signal metadata</li>
<li>build a tree for future UI integration</li>
<li>build a runtime-ready decode database</li>
<li>decode live CAN frames</li>
<li>decode CAN trace records using the same decoder</li>
</ul>
<p >The implementation follows a simple and practical design:</p>
<ul>
<li>parser logic is separated from UI logic</li>
<li>runtime decode structures are separated from tree structures</li>
<li>Qt is not required at the parser or decoder level</li>
<li>the same decode engine can be reused for live traffic and trace replay</li>
</ul>
<p >This is <b>not a full production-grade DBC implementation yet</b>, but it is a strong architectural base.</p>
<hr />
<h1><a class="anchor" id="autotoc_md3"></a>
High-Level Architecture</h1>
<p >The module is divided into two main paths.</p>
<h2><a class="anchor" id="autotoc_md4"></a>
1. Parse and UI path</h2>
<p >Used for:</p>
<ul>
<li>browsing frames and signals</li>
<li>later integration with Qt <code>Model/View</code></li>
<li>displaying metadata</li>
</ul>
<p >Pipeline:</p>
<div class="fragment"><div class="line">DBC file</div>
<div class="line"></div>
<div class="line">DbcParser</div>
<div class="line"></div>
<div class="line">DbcDatabase</div>
<div class="line"></div>
<div class="line">DbcTreeBuilder</div>
<div class="line"></div>
<div class="line">TreeNode hierarchy</div>
<div class="line"></div>
<div class="line">future Qt UI</div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md5"></a>
2. Runtime decode path</h2>
<p >Used for:</p>
<ul>
<li>live CAN decoding</li>
<li>CAN trace decoding</li>
<li>fast lookup by CAN ID</li>
</ul>
<p >Pipeline:</p>
<div class="fragment"><div class="line">DBC file</div>
<div class="line"></div>
<div class="line">DbcParser</div>
<div class="line"></div>
<div class="line">DbcDatabase</div>
<div class="line"></div>
<div class="line">DbcDecodeBuilder</div>
<div class="line"></div>
<div class="line">DecodeDatabase</div>
<div class="line"></div>
<div class="line">DbcDecoder</div>
<div class="line"></div>
<div class="line">Decoded values</div>
</div><!-- fragment --><p >This separation is intentional.</p>
<p >The tree is useful for UI, but it is <b>not</b> the main data structure for runtime decoding.</p>
<hr />
<h1><a class="anchor" id="autotoc_md7"></a>
Why the Runtime Decode Layer Exists</h1>
<p >A tree structure is convenient for browsing, but a runtime decoder needs something different:</p>
<ul>
<li>fast lookup by CAN ID</li>
<li>direct access to signal decode definitions</li>
<li>minimal overhead during repeated decoding</li>
<li>the same logic for live frames and trace frames</li>
</ul>
<p >Because of that, the design uses a dedicated runtime-ready structure:</p>
<ul>
<li><code><a class="el" href="structDecodeDatabase.html" title="Runtime decode database with fast lookup by CAN ID.">DecodeDatabase</a></code></li>
<li><code><a class="el" href="structDecodeFrame.html" title="Runtime-ready frame definition.">DecodeFrame</a></code></li>
<li><code><a class="el" href="structDecodeSignal.html" title="Runtime-ready signal definition.">DecodeSignal</a></code></li>
</ul>
<p >This avoids forcing UI-oriented structures into a decode role they were not meant for.</p>
<hr />
<h1><a class="anchor" id="autotoc_md9"></a>
Module Layout</h1>
<h2><a class="anchor" id="autotoc_md10"></a>
Parsed DBC structures</h2>
<p >Files:</p>
<ul>
<li><code><a class="el" href="signal__info_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">signal_info.h</a></code></li>
<li><code><a class="el" href="frame__info_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">frame_info.h</a></code></li>
<li><code><a class="el" href="dbc__database_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_database.h</a></code></li>
</ul>
<p >These store a readable representation of the parsed DBC file.</p>
<h2><a class="anchor" id="autotoc_md11"></a>
UI tree structures</h2>
<p >Files:</p>
<ul>
<li><code><a class="el" href="tree__node_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">tree_node.h</a></code></li>
<li><code><a class="el" href="tree__node_8cpp.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">tree_node.cpp</a></code></li>
<li><code><a class="el" href="dbc__tree__builder_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_tree_builder.h</a></code></li>
<li><code><a class="el" href="dbc__tree__builder_8cpp.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_tree_builder.cpp</a></code></li>
</ul>
<p >These convert parsed DBC content into a tree hierarchy suitable for UI and model/view usage later.</p>
<h2><a class="anchor" id="autotoc_md12"></a>
Runtime decode structures</h2>
<p >Files:</p>
<ul>
<li><code><a class="el" href="decode__database_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">decode_database.h</a></code></li>
<li><code><a class="el" href="dbc__decode__builder_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_decode_builder.h</a></code></li>
<li><code><a class="el" href="dbc__decode__builder_8cpp.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_decode_builder.cpp</a></code></li>
</ul>
<p >These convert parsed DBC content into a structure optimized for decoding.</p>
<h2><a class="anchor" id="autotoc_md13"></a>
Runtime decoder</h2>
<p >Files:</p>
<ul>
<li><code><a class="el" href="dbc__decoder_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_decoder.h</a></code></li>
<li><code><a class="el" href="dbc__decoder_8cpp.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_decoder.cpp</a></code></li>
</ul>
<p >These perform actual decoding of raw CAN frames using <code><a class="el" href="structDecodeDatabase.html" title="Runtime decode database with fast lookup by CAN ID.">DecodeDatabase</a></code>.</p>
<h2><a class="anchor" id="autotoc_md14"></a>
Parser</h2>
<p >Files:</p>
<ul>
<li><code><a class="el" href="dbc__parser_8h.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_parser.h</a></code></li>
<li><code><a class="el" href="dbc__parser_8cpp.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">dbc_parser.cpp</a></code></li>
</ul>
<p >These parse the DBC file itself.</p>
<h2><a class="anchor" id="autotoc_md15"></a>
Demo</h2>
<p >File:</p>
<ul>
<li><code><a class="el" href="main_8cpp.html" title="Created: 2026-03-13 Author: Deeaitch (Dim. Himro)">main.cpp</a></code></li>
</ul>
<p >Used as a small integration example.</p>
<hr />
<h1><a class="anchor" id="autotoc_md17"></a>
Parsed Data Structures</h1>
<h1><a class="anchor" id="autotoc_md18"></a>
&lt;tt&gt;SignalInfo&lt;/tt&gt;</h1>
<p >Represents one signal as parsed from the DBC file.</p>
<p >Fields:</p>
<ul>
<li><code>name</code></li>
<li><code>startBit</code></li>
<li><code>length</code></li>
<li><code>isLittleEndian</code></li>
<li><code>isSigned</code></li>
<li><code>factor</code></li>
<li><code>offset</code></li>
<li><code>minimum</code></li>
<li><code>maximum</code></li>
<li><code>unit</code></li>
<li><code>receivers</code></li>
<li><code>comment</code></li>
</ul>
<p >Notes:</p>
<ul>
<li><code>receivers</code> is a list because a signal may have more than one receiver ECU</li>
<li><code>factor</code> and <code>offset</code> define physical conversion</li>
<li>this structure is close to DBC content and easy to inspect</li>
</ul>
<p >Physical value rule:</p>
<div class="fragment"><div class="line">physical = raw * factor + offset</div>
</div><!-- fragment --><hr />
<h1><a class="anchor" id="autotoc_md20"></a>
&lt;tt&gt;FrameInfo&lt;/tt&gt;</h1>
<p >Represents one frame as parsed from the DBC file.</p>
<p >Fields:</p>
<ul>
<li><code>name</code></li>
<li><code>canId</code></li>
<li><code>isExtended</code></li>
<li><code>pgn</code></li>
<li><code>hasPgn</code></li>
<li><code>dlc</code></li>
<li><code>transmitter</code></li>
<li><code>comment</code></li>
<li><code>signals</code></li>
</ul>
<p >Notes:</p>
<ul>
<li><code>signals</code> is a list of <code><a class="el" href="structSignalInfo.html" title="Describes one signal inside a DBC frame.">SignalInfo</a></code></li>
<li><code>isExtended</code> is determined during CAN ID normalization</li>
<li><code>pgn</code> is derived using simplified J1939 logic when applicable</li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md22"></a>
&lt;tt&gt;DbcDatabase&lt;/tt&gt;</h1>
<p >Top-level parsed DBC container.</p>
<p >Conceptually:</p>
<div class="fragment"><div class="line">DbcDatabase</div>
<div class="line"> └── vector&lt;FrameInfo&gt;</div>
</div><!-- fragment --><p >This is the central structure produced by <code><a class="el" href="classDbcParser.html" title="Minimal DBC parser.">DbcParser</a></code>.</p>
<hr />
<h1><a class="anchor" id="autotoc_md24"></a>
UI Tree Layer</h1>
<h1><a class="anchor" id="autotoc_md25"></a>
&lt;tt&gt;TreeNode&lt;/tt&gt;</h1>
<p >The UI tree contains three node types:</p>
<ul>
<li><code>Root</code></li>
<li><code>Frame</code></li>
<li><code>Signal</code></li>
</ul>
<p >Example hierarchy:</p>
<div class="fragment"><div class="line">dbc</div>
<div class="line"> ├── EngineData</div>
<div class="line"> │ ├── EngineSpeed</div>
<div class="line"> │ ├── OilTemp</div>
<div class="line"> │ └── CoolantTemp</div>
<div class="line"> └── VehicleData</div>
<div class="line"> ├── VehicleSpeed</div>
<div class="line"> └── Odometer</div>
</div><!-- fragment --><p >Each node stores either:</p>
<ul>
<li><code><a class="el" href="structFrameInfo.html" title="Describes one CAN frame from a DBC file.">FrameInfo</a></code></li>
<li><code><a class="el" href="structSignalInfo.html" title="Describes one signal inside a DBC frame.">SignalInfo</a></code></li>
</ul>
<p >The tree is intended for browsing and later Qt model integration.</p>
<p >It is <b>not</b> the primary runtime decode structure.</p>
<hr />
<h1><a class="anchor" id="autotoc_md27"></a>
Runtime Decode Layer</h1>
<h1><a class="anchor" id="autotoc_md28"></a>
Purpose</h1>
<p >The decode layer exists so that decoding can be fast and independent from UI concerns.</p>
<p >Instead of searching a tree, the decoder uses a prepared database with direct lookup.</p>
<hr />
<h1><a class="anchor" id="autotoc_md30"></a>
&lt;tt&gt;ByteOrder&lt;/tt&gt;</h1>
<p >Runtime byte order enum:</p>
<ul>
<li><code>Intel</code></li>
<li><code>Motorola</code></li>
</ul>
<p >This is better for decode code than passing around raw DBC characters.</p>
<hr />
<h1><a class="anchor" id="autotoc_md32"></a>
&lt;tt&gt;ValueType&lt;/tt&gt;</h1>
<p >Numeric type enum:</p>
<ul>
<li><code>Unsigned</code></li>
<li><code>Signed</code></li>
</ul>
<p >This is clearer than combining multiple boolean flags during runtime logic.</p>
<hr />
<h1><a class="anchor" id="autotoc_md34"></a>
&lt;tt&gt;DecodeSignal&lt;/tt&gt;</h1>
<p >Represents one runtime-ready signal definition.</p>
<p >Fields:</p>
<ul>
<li><code>name</code></li>
<li><code>startBit</code></li>
<li><code>length</code></li>
<li><code>byteOrder</code></li>
<li><code>valueType</code></li>
<li><code>factor</code></li>
<li><code>offset</code></li>
<li><code>minimum</code></li>
<li><code>maximum</code></li>
<li><code>unit</code></li>
<li><code>receivers</code></li>
<li><code>comment</code></li>
</ul>
<p >This structure contains all information required for extracting and converting a signal value from raw frame data.</p>
<hr />
<h1><a class="anchor" id="autotoc_md36"></a>
&lt;tt&gt;DecodeFrame&lt;/tt&gt;</h1>
<p >Represents one runtime-ready frame definition.</p>
<p >Fields:</p>
<ul>
<li><code>name</code></li>
<li><code>canId</code></li>
<li><code>isExtended</code></li>
<li><code>dlc</code></li>
<li><code>pgn</code></li>
<li><code>hasPgn</code></li>
<li><code>transmitter</code></li>
<li><code>comment</code></li>
<li><code>signals</code></li>
</ul>
<p >This structure is used directly by the decoder.</p>
<hr />
<h1><a class="anchor" id="autotoc_md38"></a>
&lt;tt&gt;FrameKey&lt;/tt&gt;</h1>
<p >Fast lookup key for runtime frame matching.</p>
<p >Fields:</p>
<ul>
<li><code>canId</code></li>
<li><code>isExtended</code></li>
</ul>
<p >This matters because the same numeric identifier must not be confused between standard and extended frames.</p>
<hr />
<h1><a class="anchor" id="autotoc_md40"></a>
&lt;tt&gt;DecodeDatabase&lt;/tt&gt;</h1>
<p >Top-level runtime decode container.</p>
<p >Fields:</p>
<ul>
<li><code>frames</code></li>
<li><code>frameIndexByKey</code></li>
</ul>
<p >Conceptually:</p>
<div class="fragment"><div class="line">DecodeDatabase</div>
<div class="line"> ├── vector&lt;DecodeFrame&gt;</div>
<div class="line"> └── unordered_map&lt;FrameKey, index&gt;</div>
</div><!-- fragment --><p >This gives the decoder fast access to a frame definition using CAN ID and frame type.</p>
<hr />
<h1><a class="anchor" id="autotoc_md42"></a>
Decoder Layer</h1>
<h1><a class="anchor" id="autotoc_md43"></a>
&lt;tt&gt;RawCanFrame&lt;/tt&gt;</h1>
<p >Represents a raw CAN frame to decode.</p>
<p >Fields:</p>
<ul>
<li><code>canId</code></li>
<li><code>isExtended</code></li>
<li><code>data</code></li>
</ul>
<p >This same structure can be used for:</p>
<ul>
<li>live CAN bus input</li>
<li>replayed trace records</li>
<li>unit tests</li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md45"></a>
&lt;tt&gt;DecodedSignalValue&lt;/tt&gt;</h1>
<p >Represents one decoded signal result.</p>
<p >Fields:</p>
<ul>
<li><code>definition</code></li>
<li><code>rawValue</code></li>
<li><code>physicalValue</code></li>
<li><code>valid</code></li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md47"></a>
&lt;tt&gt;DecodedFrameValue&lt;/tt&gt;</h1>
<p >Represents one decoded frame result.</p>
<p >Fields:</p>
<ul>
<li><code>definition</code></li>
<li><code>signals</code></li>
<li><code>valid</code></li>
</ul>
<p >This is the decoder output for one raw frame.</p>
<hr />
<h1><a class="anchor" id="autotoc_md49"></a>
&lt;tt&gt;DbcDecoder&lt;/tt&gt;</h1>
<p >Main runtime decoder class.</p>
<p >Responsibilities:</p>
<ul>
<li>find a frame definition by CAN ID</li>
<li>decode all signals in a frame</li>
<li>extract raw values</li>
<li>sign-extend signed values</li>
<li>convert raw values into physical values</li>
</ul>
<p >Main methods:</p>
<ul>
<li><code>FindFrame(...)</code></li>
<li><code>Decode(...)</code></li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md51"></a>
Parser Support</h1>
<p >The current parser supports the following DBC elements:</p>
<ul>
<li><code>BO_</code></li>
<li><code>SG_</code></li>
<li><code>CM_ BO_</code></li>
<li><code>CM_ SG_</code></li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md53"></a>
Supported DBC Syntax</h1>
<h1><a class="anchor" id="autotoc_md54"></a>
Frame definition</h1>
<p >Example:</p>
<div class="fragment"><div class="line">BO_ 256 EngineData: 8 EEC1</div>
</div><!-- fragment --><p >Parsed fields:</p>
<ul>
<li>frame CAN ID</li>
<li>frame name</li>
<li>DLC</li>
<li>transmitter ECU</li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md56"></a>
Signal definition</h1>
<p >Example:</p>
<div class="fragment"><div class="line">SG_ EngineSpeed : 0|16@1+ (0.125,0) [0|8000] &quot;rpm&quot; ECU1,ECU2</div>
</div><!-- fragment --><p >Parsed fields:</p>
<ul>
<li>signal name</li>
<li>start bit</li>
<li>signal length</li>
<li>byte order</li>
<li>signedness</li>
<li>factor</li>
<li>offset</li>
<li>minimum</li>
<li>maximum</li>
<li>unit</li>
<li>receivers</li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md58"></a>
Comments</h1>
<p >Frame comment example:</p>
<div class="fragment"><div class="line">CM_ BO_ 256 &quot;Engine data frame&quot;;</div>
</div><!-- fragment --><p >Signal comment example:</p>
<div class="fragment"><div class="line">CM_ SG_ 256 EngineSpeed &quot;Actual engine speed&quot;;</div>
</div><!-- fragment --><p >Stored in:</p>
<ul>
<li><code><a class="el" href="structFrameInfo.html#ace75121294f9d89b762080ab5643293c">FrameInfo::comment</a></code></li>
<li><code><a class="el" href="structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5">SignalInfo::comment</a></code></li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md60"></a>
CAN ID Normalization</h1>
<p >The parser normalizes frame identifiers.</p>
<p >Common DBC behavior:</p>
<ul>
<li>extended identifiers may be stored with bit 31 set</li>
<li>the actual 29-bit identifier must be extracted from that value</li>
</ul>
<p >The parser therefore stores:</p>
<ul>
<li>normalized <code>canId</code></li>
<li>separate <code>isExtended</code> flag</li>
</ul>
<p >This is important both for correct lookup and for future interoperability with live CAN APIs.</p>
<hr />
<h1><a class="anchor" id="autotoc_md62"></a>
PGN Extraction</h1>
<p >PGN is derived only when the frame is treated as extended.</p>
<p >The current logic is simplified J1939 extraction:</p>
<ul>
<li><code>pf</code></li>
<li><code>ps</code></li>
<li><code>dp</code></li>
</ul>
<p >This is enough for a practical start but should not be treated as full J1939 validation.</p>
<hr />
<h1><a class="anchor" id="autotoc_md64"></a>
Decode Flow</h1>
<p >Typical runtime decode flow:</p>
<div class="fragment"><div class="line">RawCanFrame</div>
<div class="line"></div>
<div class="line">Find frame in DecodeDatabase</div>
<div class="line"></div>
<div class="line">For each signal:</div>
<div class="line"> extract raw bits</div>
<div class="line"> apply sign extension if needed</div>
<div class="line"> convert to physical value</div>
<div class="line"></div>
<div class="line">DecodedFrameValue</div>
</div><!-- fragment --><hr />
<h1><a class="anchor" id="autotoc_md66"></a>
Intel and Motorola Extraction</h1>
<p >The decoder currently has separate extraction paths:</p>
<ul>
<li><code>ExtractIntel(...)</code></li>
<li><code>ExtractMotorola(...)</code></li>
</ul>
<p >This is important because byte order is not just metadata once decoding starts.</p>
<p >Intel and Motorola require different bit extraction logic.</p>
<p >This is one of the main reasons why the runtime decode layer should be explicit and prepared in advance.</p>
<hr />
<h1><a class="anchor" id="autotoc_md68"></a>
Example Usage</h1>
<h1><a class="anchor" id="autotoc_md69"></a>
Parse DBC</h1>
<div class="fragment"><div class="line"><a class="code hl_class" href="classDbcParser.html">DbcParser</a> parser;</div>
<div class="line"><a class="code hl_struct" href="structDbcDatabase.html">DbcDatabase</a> database = parser.<a class="code hl_function" href="classDbcParser.html#aef72826942c9095d653fafa435855e56">ParseFile</a>(<span class="stringliteral">&quot;example.dbc&quot;</span>);</div>
<div class="ttc" id="aclassDbcParser_html"><div class="ttname"><a href="classDbcParser.html">DbcParser</a></div><div class="ttdoc">Minimal DBC parser.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__parser_8h_source.html#l00035">dbc_parser.h:35</a></div></div>
<div class="ttc" id="aclassDbcParser_html_aef72826942c9095d653fafa435855e56"><div class="ttname"><a href="classDbcParser.html#aef72826942c9095d653fafa435855e56">DbcParser::ParseFile</a></div><div class="ttdeci">DbcDatabase ParseFile(const std::string &amp;filePath) const</div><div class="ttdoc">Parse DBC file.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__parser_8cpp_source.html#l00040">dbc_parser.cpp:40</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><!-- fragment --><h1><a class="anchor" id="autotoc_md70"></a>
Build UI tree</h1>
<div class="fragment"><div class="line"><a class="code hl_class" href="classDbcTreeBuilder.html">DbcTreeBuilder</a> treeBuilder;</div>
<div class="line">std::unique_ptr&lt;TreeNode&gt; root = treeBuilder.<a class="code hl_function" href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">Build</a>(database);</div>
<div class="ttc" id="aclassDbcTreeBuilder_html"><div class="ttname"><a href="classDbcTreeBuilder.html">DbcTreeBuilder</a></div><div class="ttdoc">Builds a simple tree from parsed DBC database.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__tree__builder_8h_source.html#l00023">dbc_tree_builder.h:23</a></div></div>
<div class="ttc" id="aclassDbcTreeBuilder_html_a7e57d067d831b14b383947fd125edd4b"><div class="ttname"><a href="classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b">DbcTreeBuilder::Build</a></div><div class="ttdeci">std::unique_ptr&lt; TreeNode &gt; Build(const DbcDatabase &amp;database) const</div><div class="ttdoc">Build tree representation of parsed DBC data.</div><div class="ttdef"><b>Definition:</b> <a href="dbc__tree__builder_8cpp_source.html#l00014">dbc_tree_builder.cpp:14</a></div></div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md71"></a>
Build runtime decode database</h1>
<div class="fragment"><div class="line"><a class="code hl_class" href="classDbcDecodeBuilder.html">DbcDecodeBuilder</a> decodeBuilder;</div>
<div class="line"><a class="code hl_struct" href="structDecodeDatabase.html">DecodeDatabase</a> decodeDatabase = decodeBuilder.<a class="code hl_function" href="classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b">Build</a>(database);</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#l00014">dbc_decode_builder.cpp:14</a></div></div>
<div class="ttc" id="astructDecodeDatabase_html"><div class="ttname"><a href="structDecodeDatabase.html">DecodeDatabase</a></div><div class="ttdoc">Runtime decode database with fast lookup by CAN ID.</div><div class="ttdef"><b>Definition:</b> <a href="decode__database_8h_source.html#l00132">decode_database.h:132</a></div></div>
</div><!-- fragment --><h1><a class="anchor" id="autotoc_md72"></a>
Decode a raw frame</h1>
<div class="fragment"><div class="line"><a class="code hl_struct" href="structRawCanFrame.html">RawCanFrame</a> rawFrame;</div>
<div class="line">rawFrame.<a class="code hl_variable" href="structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4">canId</a> = 0x123;</div>
<div class="line">rawFrame.<a class="code hl_variable" href="structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7">isExtended</a> = <span class="keyword">false</span>;</div>
<div class="line">rawFrame.<a class="code hl_variable" href="structRawCanFrame.html#a0acb487612104c99c9907344c035df83">data</a> = {0x01, 0x02, 0x03, 0x04};</div>
<div class="line"> </div>
<div class="line"><a class="code hl_class" href="classDbcDecoder.html">DbcDecoder</a> decoder;</div>
<div class="line"><a class="code hl_struct" href="structDecodedFrameValue.html">DecodedFrameValue</a> decoded = decoder.<a class="code hl_function" href="classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7">Decode</a>(decodeDatabase, rawFrame);</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#l00070">dbc_decoder.h:70</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#l00031">dbc_decoder.cpp:31</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#l00055">dbc_decoder.h:55</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#l00023">dbc_decoder.h:23</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#l00026">dbc_decoder.h:26</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#l00024">dbc_decoder.h:24</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#l00025">dbc_decoder.h:25</a></div></div>
</div><!-- fragment --><hr />
<h1><a class="anchor" id="autotoc_md74"></a>
Unified Decode Strategy</h1>
<p >A key design goal is that the same decoder should work for both:</p>
<ul>
<li>live CAN frames</li>
<li>trace replay frames</li>
</ul>
<p >That means this architecture supports:</p>
<h2><a class="anchor" id="autotoc_md75"></a>
live path</h2>
<div class="fragment"><div class="line">live CAN input</div>
<div class="line"></div>
<div class="line">RawCanFrame</div>
<div class="line"></div>
<div class="line">DbcDecoder</div>
<div class="line"></div>
<div class="line">decoded signal values</div>
</div><!-- fragment --><h2><a class="anchor" id="autotoc_md76"></a>
trace path</h2>
<div class="fragment"><div class="line">trace reader</div>
<div class="line"></div>
<div class="line">RawCanFrame</div>
<div class="line"></div>
<div class="line">DbcDecoder</div>
<div class="line"></div>
<div class="line">decoded signal values</div>
</div><!-- fragment --><p >This avoids duplicating decode logic in two separate parts of the application.</p>
<hr />
<h1><a class="anchor" id="autotoc_md78"></a>
Intended Use in FrameTap</h1>
<p >This module is meant to support at least the following FrameTap workflows:</p>
<ul>
<li>load a DBC file</li>
<li>browse frames and signals</li>
<li>search signals</li>
<li>drag a signal into a plot later</li>
<li>decode live CAN traffic</li>
<li>decode recorded traces</li>
<li>convert raw values into physical values</li>
<li>show metadata like units, comments, transmitter, receivers, and PGN</li>
</ul>
<p >Example combined workflow:</p>
<div class="fragment"><div class="line">Load DBC</div>
<div class="line"></div>
<div class="line">Parse into DbcDatabase</div>
<div class="line"></div>
<div class="line">Build UI tree</div>
<div class="line"></div>
<div class="line">Build DecodeDatabase</div>
<div class="line"></div>
<div class="line">Use same decode engine for:</div>
<div class="line"> - live frames</div>
<div class="line"> - trace replay</div>
</div><!-- fragment --><hr />
<h1><a class="anchor" id="autotoc_md80"></a>
Why the Tree Is Not Enough</h1>
<p >The tree exists for browsing.</p>
<p >However, runtime decode should not rely on tree traversal because that would introduce unnecessary coupling and inefficiency.</p>
<p >A runtime decoder needs:</p>
<ul>
<li>fast key-based access</li>
<li>minimal interpretation at decode time</li>
<li>direct signal definitions already prepared</li>
</ul>
<p >That is why <code><a class="el" href="structDecodeDatabase.html" title="Runtime decode database with fast lookup by CAN ID.">DecodeDatabase</a></code> is a separate layer.</p>
<hr />
<h1><a class="anchor" id="autotoc_md82"></a>
Why No Abstract Factory Is Used</h1>
<p >At the current stage, abstract factory is intentionally avoided.</p>
<p >The current design is already clean:</p>
<div class="fragment"><div class="line">parser → parsed database → decode database</div>
<div class="line"> ↘ tree builder → UI tree</div>
</div><!-- fragment --><p >Introducing factory layers now would increase complexity without solving an immediate problem.</p>
<p >If later the project requires multiple output representations or multiple build strategies, that can be added then.</p>
<hr />
<h1><a class="anchor" id="autotoc_md84"></a>
Current Limitations</h1>
<p >This is still a minimal implementation.</p>
<p >Not supported yet:</p>
<ul>
<li>multiplexed signals</li>
<li><code>VAL_</code> tables</li>
<li><code>BA_</code> attributes</li>
<li><code>BA_DEF_</code> definitions</li>
<li>advanced comment handling</li>
<li>full DBC grammar coverage</li>
<li>full J1939 validation</li>
<li>extensive edge-case handling for unusual DBC formatting</li>
</ul>
<p >Motorola extraction is implemented, but it should still be verified carefully against real-world DBC files and expected values.</p>
<hr />
<h1><a class="anchor" id="autotoc_md86"></a>
Recommended Next Steps</h1>
<p >A practical development order would be:</p>
<h2><a class="anchor" id="autotoc_md87"></a>
Stage 1 - already implemented</h2>
<ul>
<li><code>BO_</code></li>
<li><code>SG_</code></li>
<li><code>CM_</code></li>
<li>normalized CAN ID</li>
<li><code>isExtended</code></li>
<li>transmitter</li>
<li>receivers</li>
<li>comments</li>
<li>tree representation</li>
<li>runtime decode database</li>
<li>runtime decoder</li>
</ul>
<h2><a class="anchor" id="autotoc_md88"></a>
Stage 2</h2>
<p >Recommended additions:</p>
<ul>
<li>parent pointer in <code><a class="el" href="classTreeNode.html" title="Tree node for later use in model/view or other hierarchy consumers.">TreeNode</a></code></li>
<li>Qt model adapter</li>
<li><code>VAL_</code> support for enum-style signals</li>
<li>better display strings for UI</li>
<li>selective decoding of only chosen signals</li>
</ul>
<h2><a class="anchor" id="autotoc_md89"></a>
Stage 3</h2>
<p >Recommended additions:</p>
<ul>
<li>multiplexing support</li>
<li>attribute parsing</li>
<li>richer J1939 support</li>
<li>CSV export of decoded traces</li>
<li>optimized filtering and signal selection</li>
</ul>
<h2><a class="anchor" id="autotoc_md90"></a>
Stage 4</h2>
<p >Advanced functionality:</p>
<ul>
<li>live plot integration</li>
<li>signal subscriptions</li>
<li>per-signal trace decode pipelines</li>
<li>decoder-assisted export formats</li>
</ul>
<hr />
<h1><a class="anchor" id="autotoc_md92"></a>
Build Integration</h1>
<p >The module does not depend on any specific build system.</p>
<p >It can be integrated with:</p>
<ul>
<li>CMake</li>
<li>qmake</li>
<li>Makefile</li>
</ul>
<p >Just add the source files to the project.</p>
<hr />
<h1><a class="anchor" id="autotoc_md94"></a>
Summary</h1>
<p >This module is now split into two intentionally separate layers:</p>
<h2><a class="anchor" id="autotoc_md95"></a>
Parsed representation</h2>
<p >Used for:</p>
<ul>
<li>storing parsed DBC content</li>
<li>browsing</li>
<li>UI tree generation</li>
</ul>
<h2><a class="anchor" id="autotoc_md96"></a>
Runtime decode representation</h2>
<p >Used for:</p>
<ul>
<li>fast frame lookup</li>
<li>live CAN decode</li>
<li>trace decode</li>
<li>physical value conversion</li>
</ul>
<p >That separation is the main architectural improvement.</p>
<p >In short, the system now looks like this:</p>
<div class="fragment"><div class="line">DBC parser → DbcDatabase → DecodeDatabase → DbcDecoder</div>
<div class="line"> ↘ TreeNode → future UI</div>
</div><!-- fragment --><p >This gives FrameTap a much better foundation for real use, because both browsing and decoding are supported without forcing one representation to do the other's job. </p>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</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.4 </li>
</ul>
</div>
</body>
</html>

135
docs/html/menu.js Normal file
View File

@@ -0,0 +1,135 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
function makeTree(data,relPath) {
var result='';
if ('children' in data) {
result+='<ul>';
for (var i in data.children) {
var url;
var link;
link = data.children[i].url;
if (link.substring(0,1)=='^') {
url = link.substring(1);
} else {
url = relPath+link;
}
result+='<li><a href="'+url+'">'+
data.children[i].text+'</a>'+
makeTree(data.children[i],relPath)+'</li>';
}
result+='</ul>';
}
return result;
}
var searchBox;
if (searchEnabled) {
if (serverSide) {
searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
'<div class="left">'+
'<form id="FSearchBox" action="'+relPath+searchPage+
'" method="get"><img id="MSearchSelect" src="'+
relPath+'search/mag.svg" alt=""/>'+
'<input type="text" id="MSearchField" name="query" value="'+search+
'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
' onblur="searchBox.OnSearchFieldFocus(false)">'+
'</form>'+
'</div>'+
'<div class="right"></div>'+
'</div>';
} else {
searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
'<span class="left">'+
'<img id="MSearchSelect" src="'+relPath+
'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
'<input type="text" id="MSearchField" value="'+search+
'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
'onblur="searchBox.OnSearchFieldFocus(false)" '+
'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
'</span>'+
'<span class="right"><a id="MSearchClose" '+
'href="javascript:searchBox.CloseResultsWindow()">'+
'<img id="MSearchCloseImg" border="0" src="'+relPath+
'search/close.svg" alt=""/></a>'
'</span>'
'</div>';
}
}
$('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
'<label class="main-menu-btn" for="main-menu-state">'+
'<span class="main-menu-btn-icon"></span> '+
'Toggle main menu visibility</label>'+
'<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
'</div>');
$('#main-nav').append(makeTree(menudata,relPath));
$('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
if (searchBox) {
$('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
}
var $mainMenuState = $('#main-menu-state');
var prevWidth = 0;
if ($mainMenuState.length) {
function initResizableIfExists() {
if (typeof initResizable==='function') initResizable();
}
// animate mobile menu
$mainMenuState.change(function(e) {
var $menu = $('#main-menu');
var options = { duration: 250, step: initResizableIfExists };
if (this.checked) {
options['complete'] = function() { $menu.css('display', 'block') };
$menu.hide().slideDown(options);
} else {
options['complete'] = function() { $menu.css('display', 'none') };
$menu.show().slideUp(options);
}
});
// set default menu visibility
function resetState() {
var $menu = $('#main-menu');
var $mainMenuState = $('#main-menu-state');
var newWidth = $(window).outerWidth();
if (newWidth!=prevWidth) {
if ($(window).outerWidth()<768) {
$mainMenuState.prop('checked',false); $menu.hide();
$('#searchBoxPos1').html(searchBox);
$('#searchBoxPos2').hide();
} else {
$menu.show();
$('#searchBoxPos1').empty();
$('#searchBoxPos2').html(searchBox);
$('#searchBoxPos2').show();
}
prevWidth = newWidth;
}
}
$(window).ready(function() { resetState(); initResizableIfExists(); });
$(window).resize(resetState);
}
$('#main-menu').smartmenus();
}
/* @license-end */

73
docs/html/menudata.js Normal file
View File

@@ -0,0 +1,73 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var menudata={children:[
{text:"Main Page",url:"index.html"},
{text:"Related Pages",url:"pages.html"},
{text:"Classes",url:"annotated.html",children:[
{text:"Class List",url:"annotated.html"},
{text:"Class Index",url:"classes.html"},
{text:"Class Members",url:"functions.html",children:[
{text:"All",url:"functions.html",children:[
{text:"a",url:"functions.html#index_a"},
{text:"b",url:"functions.html#index_b"},
{text:"c",url:"functions.html#index_c"},
{text:"d",url:"functions.html#index_d"},
{text:"f",url:"functions.html#index_f"},
{text:"g",url:"functions.html#index_g"},
{text:"h",url:"functions.html#index_h"},
{text:"i",url:"functions.html#index_i"},
{text:"l",url:"functions.html#index_l"},
{text:"m",url:"functions.html#index_m"},
{text:"n",url:"functions.html#index_n"},
{text:"o",url:"functions.html#index_o"},
{text:"p",url:"functions.html#index_p"},
{text:"r",url:"functions.html#index_r"},
{text:"s",url:"functions.html#index_s"},
{text:"t",url:"functions.html#index_t"},
{text:"u",url:"functions.html#index_u"},
{text:"v",url:"functions.html#index_v"}]},
{text:"Functions",url:"functions_func.html"},
{text:"Variables",url:"functions_vars.html",children:[
{text:"b",url:"functions_vars.html#index_b"},
{text:"c",url:"functions_vars.html#index_c"},
{text:"d",url:"functions_vars.html#index_d"},
{text:"f",url:"functions_vars.html#index_f"},
{text:"h",url:"functions_vars.html#index_h"},
{text:"i",url:"functions_vars.html#index_i"},
{text:"l",url:"functions_vars.html#index_l"},
{text:"m",url:"functions_vars.html#index_m"},
{text:"n",url:"functions_vars.html#index_n"},
{text:"o",url:"functions_vars.html#index_o"},
{text:"p",url:"functions_vars.html#index_p"},
{text:"r",url:"functions_vars.html#index_r"},
{text:"s",url:"functions_vars.html#index_s"},
{text:"t",url:"functions_vars.html#index_t"},
{text:"u",url:"functions_vars.html#index_u"},
{text:"v",url:"functions_vars.html#index_v"}]}]}]},
{text:"Files",url:"files.html",children:[
{text:"File List",url:"files.html"},
{text:"File Members",url:"globals.html",children:[
{text:"All",url:"globals.html"},
{text:"Enumerations",url:"globals_enum.html"}]}]}]}

View File

@@ -0,0 +1,97 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC framework: anonymous_namespace{dbc_parser.cpp} Namespace 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="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>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#func-members">Functions</a> </div>
<div class="headertitle"><div class="title">anonymous_namespace{dbc_parser.cpp} Namespace Reference</div></div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a5850f07ce5f4e5c4f3bf385ebcfcebbb"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html#a5850f07ce5f4e5c4f3bf385ebcfcebbb">TrimText</a> (const std::string &amp;text)</td></tr>
<tr class="memdesc:a5850f07ce5f4e5c4f3bf385ebcfcebbb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Remove leading and trailing spaces. <a href="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html#a5850f07ce5f4e5c4f3bf385ebcfcebbb">More...</a><br /></td></tr>
<tr class="separator:a5850f07ce5f4e5c4f3bf385ebcfcebbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a5850f07ce5f4e5c4f3bf385ebcfcebbb" name="a5850f07ce5f4e5c4f3bf385ebcfcebbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5850f07ce5f4e5c4f3bf385ebcfcebbb">&#9670;&nbsp;</a></span>TrimText()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string anonymous_namespace{dbc_parser.cpp}::TrimText </td>
<td>(</td>
<td class="paramtype">const std::string &amp;&#160;</td>
<td class="paramname"><em>text</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Remove leading and trailing spaces. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">text</td><td>Input text. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Trimmed text. </dd></dl>
<p class="definition">Definition at line <a class="el" href="dbc__parser_8cpp_source.html#l00025">25</a> of file <a class="el" href="dbc__parser_8cpp_source.html">dbc_parser.cpp</a>.</p>
<p class="reference">Referenced by <a class="el" href="dbc__parser_8cpp_source.html#l00181">DbcParser::ParseSignalLine()</a>, <a class="el" href="dbc__parser_8cpp_source.html#l00087">DbcParser::SplitReceivers()</a>, and <a class="el" href="dbc__parser_8cpp_source.html#l00083">DbcParser::Trim()</a>.</p>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 14 2026 20:49:34 for DBC framework by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC framework: Namespace Members</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="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>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li class="current"><a href="namespacemembers.html"><span>All</span></a></li>
<li><a href="namespacemembers_func.html"><span>Functions</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
<div class="textblock">Here is a list of all namespace members with links to the namespace documentation for each member:</div><ul>
<li>TrimText()&#160;:&#160;<a class="el" href="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html#a5850f07ce5f4e5c4f3bf385ebcfcebbb">anonymous_namespace{dbc_parser.cpp}</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 14 2026 20:49:34 for DBC framework by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>

View File

@@ -0,0 +1,62 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC framework: Namespace Members</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="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>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li class="current"><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
<div id="navrow3" class="tabs2">
<ul class="tablist">
<li><a href="namespacemembers.html"><span>All</span></a></li>
<li class="current"><a href="namespacemembers_func.html"><span>Functions</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="contents">
&#160;<ul>
<li>TrimText()&#160;:&#160;<a class="el" href="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html#a5850f07ce5f4e5c4f3bf385ebcfcebbb">anonymous_namespace{dbc_parser.cpp}</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 14 2026 20:49:34 for DBC framework by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>

61
docs/html/namespaces.html Normal file
View File

@@ -0,0 +1,61 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC framework: Namespace 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="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>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.4 -->
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li class="current"><a href="namespaces.html"><span>Namespace&#160;List</span></a></li>
<li><a href="namespacemembers.html"><span>Namespace&#160;Members</span></a></li>
</ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">Namespace List</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all namespaces 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">N</span></span><a class="el" href="namespaceanonymous__namespace_02dbc__parser_8cpp_03.html" target="_self">anonymous_namespace{dbc_parser.cpp}</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sun Jun 14 2026 20:49:34 for DBC framework by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4
</small></address>
</body>
</html>

BIN
docs/html/nav_f.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 B

BIN
docs/html/nav_g.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 B

BIN
docs/html/nav_h.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 B

147
docs/html/navtree.css Normal file
View File

@@ -0,0 +1,147 @@
#nav-tree .children_ul {
margin:0;
padding:4px;
}
#nav-tree ul {
list-style:none outside none;
margin:0px;
padding:0px;
}
#nav-tree li {
white-space:nowrap;
margin:0px;
padding:0px;
}
#nav-tree .plus {
margin:0px;
}
#nav-tree .selected {
background-image: url('tab_a.png');
background-repeat:repeat-x;
color: #fff;
text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
}
#nav-tree img {
margin:0px;
padding:0px;
border:0px;
vertical-align: middle;
}
#nav-tree a {
text-decoration:none;
padding:0px;
margin:0px;
outline:none;
}
#nav-tree .label {
margin:0px;
padding:0px;
font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
}
#nav-tree .label a {
padding:2px;
}
#nav-tree .selected a {
text-decoration:none;
color:#fff;
}
#nav-tree .children_ul {
margin:0px;
padding:0px;
}
#nav-tree .item {
margin:0px;
padding:0px;
}
#nav-tree {
padding: 0px 0px;
background-color: #FAFAFF;
font-size:14px;
overflow:auto;
}
#doc-content {
overflow:auto;
display:block;
padding:0px;
margin:0px;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
}
#side-nav {
padding:0 6px 0 0;
margin: 0px;
display:block;
position: absolute;
left: 0px;
width: 280px;
overflow : hidden;
}
.ui-resizable .ui-resizable-handle {
display:block;
}
.ui-resizable-e {
background-image:url("splitbar.png");
background-size:100%;
background-repeat:repeat-y;
background-attachment: scroll;
cursor:ew-resize;
height:100%;
right:0;
top:0;
width:6px;
}
.ui-resizable-handle {
display:none;
font-size:0.1px;
position:absolute;
z-index:1;
}
#nav-tree-contents {
margin: 6px 0px 0px 0px;
}
#nav-tree {
background-image:url('nav_h.png');
background-repeat:repeat-x;
background-color: #F9FAFC;
-webkit-overflow-scrolling : touch; /* iOS 5+ */
}
#nav-sync {
position:absolute;
top:5px;
right:24px;
z-index:0;
}
#nav-sync img {
opacity:0.3;
}
#nav-sync img:hover {
opacity:0.9;
}
@media print
{
#nav-tree { display: none; }
div.ui-resizable-handle { display: none; position: relative; }
}

549
docs/html/navtree.js Normal file
View File

@@ -0,0 +1,549 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var navTreeSubIndices = new Array();
var arrowDown = '&#9660;';
var arrowRight = '&#9658;';
function getData(varName)
{
var i = varName.lastIndexOf('/');
var n = i>=0 ? varName.substring(i+1) : varName;
return eval(n.replace(/\-/g,'_'));
}
function stripPath(uri)
{
return uri.substring(uri.lastIndexOf('/')+1);
}
function stripPath2(uri)
{
var i = uri.lastIndexOf('/');
var s = uri.substring(i+1);
var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
return m ? uri.substring(i-6) : s;
}
function hashValue()
{
return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,'');
}
function hashUrl()
{
return '#'+hashValue();
}
function pathName()
{
return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, '');
}
function localStorageSupported()
{
try {
return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
}
catch(e) {
return false;
}
}
function storeLink(link)
{
if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
window.localStorage.setItem('navpath',link);
}
}
function deleteLink()
{
if (localStorageSupported()) {
window.localStorage.setItem('navpath','');
}
}
function cachedLink()
{
if (localStorageSupported()) {
return window.localStorage.getItem('navpath');
} else {
return '';
}
}
function getScript(scriptName,func,show)
{
var head = document.getElementsByTagName("head")[0];
var script = document.createElement('script');
script.id = scriptName;
script.type = 'text/javascript';
script.onload = func;
script.src = scriptName+'.js';
head.appendChild(script);
}
function createIndent(o,domNode,node,level)
{
var level=-1;
var n = node;
while (n.parentNode) { level++; n=n.parentNode; }
if (node.childrenData) {
var imgNode = document.createElement("span");
imgNode.className = 'arrow';
imgNode.style.paddingLeft=(16*level).toString()+'px';
imgNode.innerHTML=arrowRight;
node.plus_img = imgNode;
node.expandToggle = document.createElement("a");
node.expandToggle.href = "javascript:void(0)";
node.expandToggle.onclick = function() {
if (node.expanded) {
$(node.getChildrenUL()).slideUp("fast");
node.plus_img.innerHTML=arrowRight;
node.expanded = false;
} else {
expandNode(o, node, false, false);
}
}
node.expandToggle.appendChild(imgNode);
domNode.appendChild(node.expandToggle);
} else {
var span = document.createElement("span");
span.className = 'arrow';
span.style.width = 16*(level+1)+'px';
span.innerHTML = '&#160;';
domNode.appendChild(span);
}
}
var animationInProgress = false;
function gotoAnchor(anchor,aname,updateLocation)
{
var pos, docContent = $('#doc-content');
var ancParent = $(anchor.parent());
if (ancParent.hasClass('memItemLeft') ||
ancParent.hasClass('memtitle') ||
ancParent.hasClass('fieldname') ||
ancParent.hasClass('fieldtype') ||
ancParent.is(':header'))
{
pos = ancParent.position().top;
} else if (anchor.position()) {
pos = anchor.position().top;
}
if (pos) {
var dist = Math.abs(Math.min(
pos-docContent.offset().top,
docContent[0].scrollHeight-
docContent.height()-docContent.scrollTop()));
animationInProgress=true;
docContent.animate({
scrollTop: pos + docContent.scrollTop() - docContent.offset().top
},Math.max(50,Math.min(500,dist)),function(){
if (updateLocation) window.location.href=aname;
animationInProgress=false;
});
}
}
function newNode(o, po, text, link, childrenData, lastNode)
{
var node = new Object();
node.children = Array();
node.childrenData = childrenData;
node.depth = po.depth + 1;
node.relpath = po.relpath;
node.isLast = lastNode;
node.li = document.createElement("li");
po.getChildrenUL().appendChild(node.li);
node.parentNode = po;
node.itemDiv = document.createElement("div");
node.itemDiv.className = "item";
node.labelSpan = document.createElement("span");
node.labelSpan.className = "label";
createIndent(o,node.itemDiv,node,0);
node.itemDiv.appendChild(node.labelSpan);
node.li.appendChild(node.itemDiv);
var a = document.createElement("a");
node.labelSpan.appendChild(a);
node.label = document.createTextNode(text);
node.expanded = false;
a.appendChild(node.label);
if (link) {
var url;
if (link.substring(0,1)=='^') {
url = link.substring(1);
link = url;
} else {
url = node.relpath+link;
}
a.className = stripPath(link.replace('#',':'));
if (link.indexOf('#')!=-1) {
var aname = '#'+link.split('#')[1];
var srcPage = stripPath(pathName());
var targetPage = stripPath(link.split('#')[0]);
a.href = srcPage!=targetPage ? url : "javascript:void(0)";
a.onclick = function(){
storeLink(link);
if (!$(a).parent().parent().hasClass('selected'))
{
$('.item').removeClass('selected');
$('.item').removeAttr('id');
$(a).parent().parent().addClass('selected');
$(a).parent().parent().attr('id','selected');
}
var anchor = $(aname);
gotoAnchor(anchor,aname,true);
};
} else {
a.href = url;
a.onclick = function() { storeLink(link); }
}
} else {
if (childrenData != null)
{
a.className = "nolink";
a.href = "javascript:void(0)";
a.onclick = node.expandToggle.onclick;
}
}
node.childrenUL = null;
node.getChildrenUL = function() {
if (!node.childrenUL) {
node.childrenUL = document.createElement("ul");
node.childrenUL.className = "children_ul";
node.childrenUL.style.display = "none";
node.li.appendChild(node.childrenUL);
}
return node.childrenUL;
};
return node;
}
function showRoot()
{
var headerHeight = $("#top").height();
var footerHeight = $("#nav-path").height();
var windowHeight = $(window).height() - headerHeight - footerHeight;
(function (){ // retry until we can scroll to the selected item
try {
var navtree=$('#nav-tree');
navtree.scrollTo('#selected',100,{offset:-windowHeight/2});
} catch (err) {
setTimeout(arguments.callee, 0);
}
})();
}
function expandNode(o, node, imm, showRoot)
{
if (node.childrenData && !node.expanded) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
node.childrenData = getData(varName);
expandNode(o, node, imm, showRoot);
}, showRoot);
} else {
if (!node.childrenVisited) {
getNode(o, node);
}
$(node.getChildrenUL()).slideDown("fast");
node.plus_img.innerHTML = arrowDown;
node.expanded = true;
}
}
}
function glowEffect(n,duration)
{
n.addClass('glow').delay(duration).queue(function(next){
$(this).removeClass('glow');next();
});
}
function highlightAnchor()
{
var aname = hashUrl();
var anchor = $(aname);
if (anchor.parent().attr('class')=='memItemLeft'){
var rows = $('.memberdecls tr[class$="'+hashValue()+'"]');
glowEffect(rows.children(),300); // member without details
} else if (anchor.parent().attr('class')=='fieldname'){
glowEffect(anchor.parent().parent(),1000); // enum value
} else if (anchor.parent().attr('class')=='fieldtype'){
glowEffect(anchor.parent().parent(),1000); // struct field
} else if (anchor.parent().is(":header")) {
glowEffect(anchor.parent(),1000); // section header
} else {
glowEffect(anchor.next(),1000); // normal member
}
}
function selectAndHighlight(hash,n)
{
var a;
if (hash) {
var link=stripPath(pathName())+':'+hash.substring(1);
a=$('.item a[class$="'+link+'"]');
}
if (a && a.length) {
a.parent().parent().addClass('selected');
a.parent().parent().attr('id','selected');
highlightAnchor();
} else if (n) {
$(n.itemDiv).addClass('selected');
$(n.itemDiv).attr('id','selected');
}
var topOffset=5;
if (typeof page_layout!=='undefined' && page_layout==1) {
topOffset+=$('#top').outerHeight();
}
if ($('#nav-tree-contents .item:first').hasClass('selected')) {
topOffset+=25;
}
$('#nav-sync').css('top',topOffset+'px');
showRoot();
}
function showNode(o, node, index, hash)
{
if (node && node.childrenData) {
if (typeof(node.childrenData)==='string') {
var varName = node.childrenData;
getScript(node.relpath+varName,function(){
node.childrenData = getData(varName);
showNode(o,node,index,hash);
},true);
} else {
if (!node.childrenVisited) {
getNode(o, node);
}
$(node.getChildrenUL()).css({'display':'block'});
node.plus_img.innerHTML = arrowDown;
node.expanded = true;
var n = node.children[o.breadcrumbs[index]];
if (index+1<o.breadcrumbs.length) {
showNode(o,n,index+1,hash);
} else {
if (typeof(n.childrenData)==='string') {
var varName = n.childrenData;
getScript(n.relpath+varName,function(){
n.childrenData = getData(varName);
node.expanded=false;
showNode(o,node,index,hash); // retry with child node expanded
},true);
} else {
var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
expandNode(o, n, true, true);
}
selectAndHighlight(hash,n);
}
}
}
} else {
selectAndHighlight(hash);
}
}
function removeToInsertLater(element) {
var parentNode = element.parentNode;
var nextSibling = element.nextSibling;
parentNode.removeChild(element);
return function() {
if (nextSibling) {
parentNode.insertBefore(element, nextSibling);
} else {
parentNode.appendChild(element);
}
};
}
function getNode(o, po)
{
var insertFunction = removeToInsertLater(po.li);
po.childrenVisited = true;
var l = po.childrenData.length-1;
for (var i in po.childrenData) {
var nodeData = po.childrenData[i];
po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
i==l);
}
insertFunction();
}
function gotoNode(o,subIndex,root,hash,relpath)
{
var nti = navTreeSubIndices[subIndex][root+hash];
o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
navTo(o,NAVTREE[0][1],"",relpath);
$('.item').removeClass('selected');
$('.item').removeAttr('id');
}
if (o.breadcrumbs) {
o.breadcrumbs.unshift(0); // add 0 for root node
showNode(o, o.node, 0, hash);
}
}
function navTo(o,root,hash,relpath)
{
var link = cachedLink();
if (link) {
var parts = link.split('#');
root = parts[0];
if (parts.length>1) hash = '#'+parts[1].replace(/[^\w\-]/g,'');
else hash='';
}
if (hash.match(/^#l\d+$/)) {
var anchor=$('a[name='+hash.substring(1)+']');
glowEffect(anchor.parent(),1000); // line number
hash=''; // strip line number anchors
}
var url=root+hash;
var i=-1;
while (NAVTREEINDEX[i+1]<=url) i++;
if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
if (navTreeSubIndices[i]) {
gotoNode(o,i,root,hash,relpath)
} else {
getScript(relpath+'navtreeindex'+i,function(){
navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
if (navTreeSubIndices[i]) {
gotoNode(o,i,root,hash,relpath);
}
},true);
}
}
function showSyncOff(n,relpath)
{
n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
}
function showSyncOn(n,relpath)
{
n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
}
function toggleSyncButton(relpath)
{
var navSync = $('#nav-sync');
if (navSync.hasClass('sync')) {
navSync.removeClass('sync');
showSyncOff(navSync,relpath);
storeLink(stripPath2(pathName())+hashUrl());
} else {
navSync.addClass('sync');
showSyncOn(navSync,relpath);
deleteLink();
}
}
var loadTriggered = false;
var readyTriggered = false;
var loadObject,loadToRoot,loadUrl,loadRelPath;
$(window).on('load',function(){
if (readyTriggered) { // ready first
navTo(loadObject,loadToRoot,loadUrl,loadRelPath);
showRoot();
}
loadTriggered=true;
});
function initNavTree(toroot,relpath)
{
var o = new Object();
o.toroot = toroot;
o.node = new Object();
o.node.li = document.getElementById("nav-tree-contents");
o.node.childrenData = NAVTREE;
o.node.children = new Array();
o.node.childrenUL = document.createElement("ul");
o.node.getChildrenUL = function() { return o.node.childrenUL; };
o.node.li.appendChild(o.node.childrenUL);
o.node.depth = 0;
o.node.relpath = relpath;
o.node.expanded = false;
o.node.isLast = true;
o.node.plus_img = document.createElement("span");
o.node.plus_img.className = 'arrow';
o.node.plus_img.innerHTML = arrowRight;
if (localStorageSupported()) {
var navSync = $('#nav-sync');
if (cachedLink()) {
showSyncOff(navSync,relpath);
navSync.removeClass('sync');
} else {
showSyncOn(navSync,relpath);
}
navSync.click(function(){ toggleSyncButton(relpath); });
}
if (loadTriggered) { // load before ready
navTo(o,toroot,hashUrl(),relpath);
showRoot();
} else { // ready before load
loadObject = o;
loadToRoot = toroot;
loadUrl = hashUrl();
loadRelPath = relpath;
readyTriggered=true;
}
$(window).bind('hashchange', function(){
if (window.location.hash && window.location.hash.length>1){
var a;
if ($(location).attr('hash')){
var clslink=stripPath(pathName())+':'+hashValue();
a=$('.item a[class$="'+clslink.replace(/</g,'\\3c ')+'"]');
}
if (a==null || !$(a).parent().parent().hasClass('selected')){
$('.item').removeClass('selected');
$('.item').removeAttr('id');
}
var link=stripPath2(pathName());
navTo(o,link,hashUrl(),relpath);
} else if (!animationInProgress) {
$('#doc-content').scrollTop(0);
$('.item').removeClass('selected');
$('.item').removeAttr('id');
navTo(o,toroot,hashUrl(),relpath);
}
})
}
/* @license-end */

121
docs/html/navtreedata.js Normal file
View File

@@ -0,0 +1,121 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
var NAVTREE =
[
[ "DBC Framework", "index.html", [
[ "DBC Parser and Runtime Decode Module Documentation", "md_README.html", [
[ "Overview", "md_README.html#autotoc_md1", null ],
[ "High-Level Architecture", "md_README.html#autotoc_md3", [
[ "1. Parse and UI path", "md_README.html#autotoc_md4", null ],
[ "2. Runtime decode path", "md_README.html#autotoc_md5", null ]
] ],
[ "Why the Runtime Decode Layer Exists", "md_README.html#autotoc_md7", null ],
[ "Module Layout", "md_README.html#autotoc_md9", [
[ "Parsed DBC structures", "md_README.html#autotoc_md10", null ],
[ "UI tree structures", "md_README.html#autotoc_md11", null ],
[ "Runtime decode structures", "md_README.html#autotoc_md12", null ],
[ "Runtime decoder", "md_README.html#autotoc_md13", null ],
[ "Parser", "md_README.html#autotoc_md14", null ],
[ "Demo", "md_README.html#autotoc_md15", null ]
] ],
[ "Parsed Data Structures", "md_README.html#autotoc_md17", null ],
[ "<tt>SignalInfo</tt>", "md_README.html#autotoc_md18", null ],
[ "<tt>FrameInfo</tt>", "md_README.html#autotoc_md20", null ],
[ "<tt>DbcDatabase</tt>", "md_README.html#autotoc_md22", null ],
[ "UI Tree Layer", "md_README.html#autotoc_md24", null ],
[ "<tt>TreeNode</tt>", "md_README.html#autotoc_md25", null ],
[ "Runtime Decode Layer", "md_README.html#autotoc_md27", null ],
[ "Purpose", "md_README.html#autotoc_md28", null ],
[ "<tt>ByteOrder</tt>", "md_README.html#autotoc_md30", null ],
[ "<tt>ValueType</tt>", "md_README.html#autotoc_md32", null ],
[ "<tt>DecodeSignal</tt>", "md_README.html#autotoc_md34", null ],
[ "<tt>DecodeFrame</tt>", "md_README.html#autotoc_md36", null ],
[ "<tt>FrameKey</tt>", "md_README.html#autotoc_md38", null ],
[ "<tt>DecodeDatabase</tt>", "md_README.html#autotoc_md40", null ],
[ "Decoder Layer", "md_README.html#autotoc_md42", null ],
[ "<tt>RawCanFrame</tt>", "md_README.html#autotoc_md43", null ],
[ "<tt>DecodedSignalValue</tt>", "md_README.html#autotoc_md45", null ],
[ "<tt>DecodedFrameValue</tt>", "md_README.html#autotoc_md47", null ],
[ "<tt>DbcDecoder</tt>", "md_README.html#autotoc_md49", null ],
[ "Parser Support", "md_README.html#autotoc_md51", null ],
[ "Supported DBC Syntax", "md_README.html#autotoc_md53", null ],
[ "Frame definition", "md_README.html#autotoc_md54", null ],
[ "Signal definition", "md_README.html#autotoc_md56", null ],
[ "Comments", "md_README.html#autotoc_md58", null ],
[ "CAN ID Normalization", "md_README.html#autotoc_md60", null ],
[ "PGN Extraction", "md_README.html#autotoc_md62", null ],
[ "Decode Flow", "md_README.html#autotoc_md64", null ],
[ "Intel and Motorola Extraction", "md_README.html#autotoc_md66", null ],
[ "Example Usage", "md_README.html#autotoc_md68", null ],
[ "Parse DBC", "md_README.html#autotoc_md69", null ],
[ "Build UI tree", "md_README.html#autotoc_md70", null ],
[ "Build runtime decode database", "md_README.html#autotoc_md71", null ],
[ "Decode a raw frame", "md_README.html#autotoc_md72", null ],
[ "Unified Decode Strategy", "md_README.html#autotoc_md74", [
[ "live path", "md_README.html#autotoc_md75", null ],
[ "trace path", "md_README.html#autotoc_md76", null ]
] ],
[ "Intended Use in FrameTap", "md_README.html#autotoc_md78", null ],
[ "Why the Tree Is Not Enough", "md_README.html#autotoc_md80", null ],
[ "Why No Abstract Factory Is Used", "md_README.html#autotoc_md82", null ],
[ "Current Limitations", "md_README.html#autotoc_md84", null ],
[ "Recommended Next Steps", "md_README.html#autotoc_md86", [
[ "Stage 1 - already implemented", "md_README.html#autotoc_md87", null ],
[ "Stage 2", "md_README.html#autotoc_md88", null ],
[ "Stage 3", "md_README.html#autotoc_md89", null ],
[ "Stage 4", "md_README.html#autotoc_md90", null ]
] ],
[ "Build Integration", "md_README.html#autotoc_md92", null ],
[ "Summary", "md_README.html#autotoc_md94", [
[ "Parsed representation", "md_README.html#autotoc_md95", null ],
[ "Runtime decode representation", "md_README.html#autotoc_md96", null ]
] ]
] ],
[ "Classes", "annotated.html", [
[ "Class List", "annotated.html", "annotated_dup" ],
[ "Class Index", "classes.html", null ],
[ "Class Members", "functions.html", [
[ "All", "functions.html", null ],
[ "Functions", "functions_func.html", null ],
[ "Variables", "functions_vars.html", null ]
] ]
] ],
[ "Files", "files.html", [
[ "File List", "files.html", "files_dup" ],
[ "File Members", "globals.html", [
[ "All", "globals.html", null ],
[ "Enumerations", "globals_enum.html", null ]
] ]
] ]
] ]
];
var NAVTREEINDEX =
[
"annotated.html"
];
var SYNCONMSG = 'click to disable panel synchronisation';
var SYNCOFFMSG = 'click to enable panel synchronisation';

200
docs/html/navtreeindex0.js Normal file
View File

@@ -0,0 +1,200 @@
var NAVTREEINDEX0 =
{
"annotated.html":[1,0],
"classDbcDecodeBuilder.html":[1,0,1],
"classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b":[1,0,1,0],
"classDbcDecoder.html":[1,0,2],
"classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7":[1,0,2,1],
"classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da":[1,0,2,0],
"classDbcParser.html":[1,0,3],
"classDbcParser.html#aef72826942c9095d653fafa435855e56":[1,0,3,0],
"classDbcTreeBuilder.html":[1,0,4],
"classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b":[1,0,4,0],
"classTreeNode.html":[1,0,15],
"classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1":[1,0,15,10],
"classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6":[1,0,15,5],
"classTreeNode.html#a6161f2ebb92184eab4215d121870e788":[1,0,15,3],
"classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f":[1,0,15,6],
"classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc":[1,0,15,1],
"classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d":[1,0,15,0],
"classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18":[1,0,15,8],
"classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae":[1,0,15,2],
"classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea":[1,0,15,4],
"classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9":[1,0,15,7],
"classTreeNode.html#afc503b40004764163605d6dbdb4ef811":[1,0,15,9],
"classes.html":[1,1],
"dbc__database_8h.html":[2,0,0],
"dbc__database_8h_source.html":[2,0,0],
"dbc__decode__builder_8cpp.html":[2,0,1],
"dbc__decode__builder_8cpp_source.html":[2,0,1],
"dbc__decode__builder_8h.html":[2,0,2],
"dbc__decode__builder_8h_source.html":[2,0,2],
"dbc__decoder_8cpp.html":[2,0,3],
"dbc__decoder_8cpp_source.html":[2,0,3],
"dbc__decoder_8h.html":[2,0,4],
"dbc__decoder_8h_source.html":[2,0,4],
"dbc__parser_8cpp.html":[2,0,5],
"dbc__parser_8cpp_source.html":[2,0,5],
"dbc__parser_8h.html":[2,0,6],
"dbc__parser_8h_source.html":[2,0,6],
"dbc__tree__builder_8cpp.html":[2,0,7],
"dbc__tree__builder_8cpp_source.html":[2,0,7],
"dbc__tree__builder_8h.html":[2,0,8],
"dbc__tree__builder_8h_source.html":[2,0,8],
"decode__database_8h.html":[2,0,9],
"decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b":[2,0,9,5],
"decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142ba2ed1afe3c9215523e4272f46e6186b31":[2,0,9,5,1],
"decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142baff97a9fdede09eaf6e1c8ec9f6a61dd5":[2,0,9,5,0],
"decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1":[2,0,9,6],
"decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1a71fed0c3428bf1a2e19af257c4bac379":[2,0,9,6,1],
"decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1aa1a914735b205424ba6c40b85528d78a":[2,0,9,6,0],
"decode__database_8h_source.html":[2,0,9],
"files.html":[2,0],
"frame__info_8h.html":[2,0,10],
"frame__info_8h_source.html":[2,0,10],
"functions.html":[1,2,0],
"functions_func.html":[1,2,1],
"functions_vars.html":[1,2,2],
"globals.html":[2,1,0],
"globals_enum.html":[2,1,1],
"index.html":[],
"main_8cpp.html":[2,0,11],
"main_8cpp_source.html":[2,0,11],
"md_README.html":[0],
"md_README.html#autotoc_md1":[0,0],
"md_README.html#autotoc_md10":[0,3,0],
"md_README.html#autotoc_md11":[0,3,1],
"md_README.html#autotoc_md12":[0,3,2],
"md_README.html#autotoc_md13":[0,3,3],
"md_README.html#autotoc_md14":[0,3,4],
"md_README.html#autotoc_md15":[0,3,5],
"md_README.html#autotoc_md17":[0,4],
"md_README.html#autotoc_md18":[0,5],
"md_README.html#autotoc_md20":[0,6],
"md_README.html#autotoc_md22":[0,7],
"md_README.html#autotoc_md24":[0,8],
"md_README.html#autotoc_md25":[0,9],
"md_README.html#autotoc_md27":[0,10],
"md_README.html#autotoc_md28":[0,11],
"md_README.html#autotoc_md3":[0,1],
"md_README.html#autotoc_md30":[0,12],
"md_README.html#autotoc_md32":[0,13],
"md_README.html#autotoc_md34":[0,14],
"md_README.html#autotoc_md36":[0,15],
"md_README.html#autotoc_md38":[0,16],
"md_README.html#autotoc_md4":[0,1,0],
"md_README.html#autotoc_md40":[0,17],
"md_README.html#autotoc_md42":[0,18],
"md_README.html#autotoc_md43":[0,19],
"md_README.html#autotoc_md45":[0,20],
"md_README.html#autotoc_md47":[0,21],
"md_README.html#autotoc_md49":[0,22],
"md_README.html#autotoc_md5":[0,1,1],
"md_README.html#autotoc_md51":[0,23],
"md_README.html#autotoc_md53":[0,24],
"md_README.html#autotoc_md54":[0,25],
"md_README.html#autotoc_md56":[0,26],
"md_README.html#autotoc_md58":[0,27],
"md_README.html#autotoc_md60":[0,28],
"md_README.html#autotoc_md62":[0,29],
"md_README.html#autotoc_md64":[0,30],
"md_README.html#autotoc_md66":[0,31],
"md_README.html#autotoc_md68":[0,32],
"md_README.html#autotoc_md69":[0,33],
"md_README.html#autotoc_md7":[0,2],
"md_README.html#autotoc_md70":[0,34],
"md_README.html#autotoc_md71":[0,35],
"md_README.html#autotoc_md72":[0,36],
"md_README.html#autotoc_md74":[0,37],
"md_README.html#autotoc_md75":[0,37,0],
"md_README.html#autotoc_md76":[0,37,1],
"md_README.html#autotoc_md78":[0,38],
"md_README.html#autotoc_md80":[0,39],
"md_README.html#autotoc_md82":[0,40],
"md_README.html#autotoc_md84":[0,41],
"md_README.html#autotoc_md86":[0,42],
"md_README.html#autotoc_md87":[0,42,0],
"md_README.html#autotoc_md88":[0,42,1],
"md_README.html#autotoc_md89":[0,42,2],
"md_README.html#autotoc_md9":[0,3],
"md_README.html#autotoc_md90":[0,42,3],
"md_README.html#autotoc_md92":[0,43],
"md_README.html#autotoc_md94":[0,44],
"md_README.html#autotoc_md95":[0,44,0],
"md_README.html#autotoc_md96":[0,44,1],
"pages.html":[],
"signal__info_8h.html":[2,0,12],
"signal__info_8h_source.html":[2,0,12],
"structDbcDatabase.html":[1,0,0],
"structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b":[1,0,0,0],
"structDecodeDatabase.html":[1,0,5],
"structDecodeFrame.html":[1,0,8],
"structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23":[1,0,8,4],
"structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d":[1,0,8,5],
"structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22":[1,0,8,7],
"structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41":[1,0,8,2],
"structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060":[1,0,8,3],
"structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf":[1,0,8,1],
"structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14":[1,0,8,8],
"structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579":[1,0,8,0],
"structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9":[1,0,8,6],
"structDecodeSignal.html":[1,0,9],
"structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25":[1,0,9,7],
"structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092":[1,0,9,9],
"structDecodeSignal.html#a428c39913a366a8476dd291061354391":[1,0,9,5],
"structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7":[1,0,9,8],
"structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780":[1,0,9,0],
"structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74":[1,0,9,6],
"structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8":[1,0,9,4],
"structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d":[1,0,9,1],
"structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa":[1,0,9,10],
"structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d":[1,0,9,3],
"structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb":[1,0,9,2],
"structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473":[1,0,9,11],
"structDecodedFrameValue.html":[1,0,6],
"structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0":[1,0,6,2],
"structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c":[1,0,6,0],
"structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8":[1,0,6,1],
"structDecodedSignalValue.html":[1,0,7],
"structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec":[1,0,7,1],
"structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978":[1,0,7,2],
"structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686":[1,0,7,3],
"structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7":[1,0,7,0],
"structFrameInfo.html":[1,0,10],
"structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf":[1,0,10,2],
"structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084":[1,0,10,8],
"structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d":[1,0,10,4],
"structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8":[1,0,10,6],
"structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9":[1,0,10,5],
"structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb":[1,0,10,0],
"structFrameInfo.html#ace75121294f9d89b762080ab5643293c":[1,0,10,7],
"structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943":[1,0,10,3],
"structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e":[1,0,10,1],
"structFrameKey.html":[1,0,11],
"structFrameKeyHasher.html":[1,0,12],
"structRawCanFrame.html":[1,0,13],
"structRawCanFrame.html#a0acb487612104c99c9907344c035df83":[1,0,13,2],
"structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4":[1,0,13,0],
"structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7":[1,0,13,1],
"structSignalInfo.html":[1,0,14],
"structSignalInfo.html#a1008b5201f71848177217bd52fb84baa":[1,0,14,2],
"structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01":[1,0,14,9],
"structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3":[1,0,14,10],
"structSignalInfo.html#a379e422a00cad56f896cacf60455b088":[1,0,14,0],
"structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f":[1,0,14,4],
"structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e":[1,0,14,6],
"structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5":[1,0,14,11],
"structSignalInfo.html#ace290724f9801521609aedaa946d61f1":[1,0,14,1],
"structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b":[1,0,14,7],
"structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52":[1,0,14,8],
"structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499":[1,0,14,5],
"structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c":[1,0,14,3],
"tree__node_8cpp.html":[2,0,13],
"tree__node_8cpp_source.html":[2,0,13],
"tree__node_8h.html":[2,0,14],
"tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16":[2,0,14,1],
"tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398":[2,0,14,1,2],
"tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a":[2,0,14,1,1],
"tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad":[2,0,14,1,0],
"tree__node_8h_source.html":[2,0,14]
};

BIN
docs/html/open.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

103
docs/html/pages.html Normal file
View File

@@ -0,0 +1,103 @@
<!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">
<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.4"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>DBC Framework: Related Pages</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.4 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search",'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('pages.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">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle"><div class="title">Related Pages</div></div>
</div><!--header-->
<div class="contents">
<div class="textblock">Here is a list of all related documentation pages:</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><a class="el" href="md_README.html" target="_self">DBC Parser and Runtime Decode Module Documentation</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</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.4 </li>
</ul>
</div>
</body>
</html>

150
docs/html/resize.js Normal file
View File

@@ -0,0 +1,150 @@
/*
@licstart The following is the entire license notice for the JavaScript code in this file.
The MIT License (MIT)
Copyright (C) 1997-2020 by Dimitri van Heesch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
and associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@licend The above is the entire license notice for the JavaScript code in this file
*/
function initResizable()
{
var cookie_namespace = 'doxygen';
var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
function readCookie(cookie)
{
var myCookie = cookie_namespace+"_"+cookie+"=";
if (document.cookie) {
var index = document.cookie.indexOf(myCookie);
if (index != -1) {
var valStart = index + myCookie.length;
var valEnd = document.cookie.indexOf(";", valStart);
if (valEnd == -1) {
valEnd = document.cookie.length;
}
var val = document.cookie.substring(valStart, valEnd);
return val;
}
}
return 0;
}
function writeCookie(cookie, val, expiration)
{
if (val==undefined) return;
if (expiration == null) {
var date = new Date();
date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
expiration = date.toGMTString();
}
document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
}
function resizeWidth()
{
var windowWidth = $(window).width() + "px";
var sidenavWidth = $(sidenav).outerWidth();
content.css({marginLeft:parseInt(sidenavWidth)+"px"});
writeCookie('width',sidenavWidth-barWidth, null);
}
function restoreWidth(navWidth)
{
var windowWidth = $(window).width() + "px";
content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
sidenav.css({width:navWidth + "px"});
}
function resizeHeight()
{
var headerHeight = header.outerHeight();
var footerHeight = footer.outerHeight();
var windowHeight = $(window).height();
var contentHeight,navtreeHeight,sideNavHeight;
if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
contentHeight = windowHeight - headerHeight - footerHeight;
navtreeHeight = contentHeight;
sideNavHeight = contentHeight;
} else if (page_layout==1) { /* DISABLE_INDEX=YES */
contentHeight = windowHeight - footerHeight;
navtreeHeight = windowHeight - headerHeight;
sideNavHeight = windowHeight;
}
content.css({height:contentHeight + "px"});
navtree.css({height:navtreeHeight + "px"});
sidenav.css({height:sideNavHeight + "px"});
var width=$(window).width();
if (width!=collapsedWidth) {
if (width<desktop_vp && collapsedWidth>=desktop_vp) {
if (!collapsed) {
collapseExpand();
}
} else if (width>desktop_vp && collapsedWidth<desktop_vp) {
if (collapsed) {
collapseExpand();
}
}
collapsedWidth=width;
}
if (location.hash.slice(1)) {
(document.getElementById(location.hash.slice(1))||document.body).scrollIntoView();
}
}
function collapseExpand()
{
if (sidenav.width()>0) {
restoreWidth(0);
collapsed=true;
}
else {
var width = readCookie('width');
if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
collapsed=false;
}
}
header = $("#top");
sidenav = $("#side-nav");
content = $("#doc-content");
navtree = $("#nav-tree");
footer = $("#nav-path");
$(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
$(sidenav).resizable({ minWidth: 0 });
$(window).resize(function() { resizeHeight(); });
var device = navigator.userAgent.toLowerCase();
var touch_device = device.match(/(iphone|ipod|ipad|android)/);
if (touch_device) { /* wider split bar for touch only devices */
$(sidenav).css({ paddingRight:'20px' });
$('.ui-resizable-e').css({ width:'20px' });
$('#nav-sync').css({ right:'34px' });
barWidth=20;
}
var width = readCookie('width');
if (width) { restoreWidth(width); } else { resizeWidth(); }
resizeHeight();
var url = location.href;
var i=url.indexOf("#");
if (i>=0) window.location.hash=url.substr(i);
var _preventDefault = function(evt) { evt.preventDefault(); };
$("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
$(".ui-resizable-handle").dblclick(collapseExpand);
$(window).on('load',resizeHeight);
}
/* @license-end */

View File

@@ -0,0 +1,37 @@
<!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">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_0.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

View File

@@ -0,0 +1,4 @@
var searchData=
[
['addchild_0',['AddChild',['../classTreeNode.html#a6161f2ebb92184eab4215d121870e788',1,'TreeNode']]]
];

View File

@@ -0,0 +1,37 @@
<!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">
<head><title></title>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta name="generator" content="Doxygen 1.9.4"/>
<link rel="stylesheet" type="text/css" href="search.css"/>
<script type="text/javascript" src="all_1.js"></script>
<script type="text/javascript" src="search.js"></script>
</head>
<body class="SRPage">
<div id="SRIndex">
<div class="SRStatus" id="Loading">Loading...</div>
<div id="SRResults"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
createResults();
/* @license-end */
</script>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
document.getElementById("Loading").style.display="none";
document.getElementById("NoMatches").style.display="none";
var searchResults = new SearchResults("searchResults");
searchResults.Search();
window.addEventListener("message", function(event) {
if (event.data == "take_focus") {
var elem = searchResults.NavNext(0);
if (elem) elem.focus();
}
});
/* @license-end */
</script>
</div>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More