diff --git a/docs/dbcframework.tag b/docs/dbcframework.tag new file mode 100644 index 0000000..7d60b80 --- /dev/null +++ b/docs/dbcframework.tag @@ -0,0 +1,693 @@ + + + + dbc_database.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__database_8h.html + frame_info.h + DbcDatabase + + + dbc_decode_builder.cpp + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__decode__builder_8cpp.html + dbc_decode_builder.h + + + dbc_decode_builder.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__decode__builder_8h.html + dbc_database.h + decode_database.h + DbcDecodeBuilder + + + dbc_decoder.cpp + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__decoder_8cpp.html + dbc_decoder.h + + + dbc_decoder.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__decoder_8h.html + decode_database.h + RawCanFrame + DecodedSignalValue + DecodedFrameValue + DbcDecoder + + + dbc_parser.cpp + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__parser_8cpp.html + dbc_parser.h + + + dbc_parser.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__parser_8h.html + dbc_database.h + DbcParser + + + dbc_tree_builder.cpp + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__tree__builder_8cpp.html + dbc_tree_builder.h + + + dbc_tree_builder.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + dbc__tree__builder_8h.html + dbc_database.h + tree_node.h + DbcTreeBuilder + + + decode_database.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + decode__database_8h.html + DecodeSignal + DecodeFrame + FrameKey + FrameKeyHasher + DecodeDatabase + + + ByteOrder + decode__database_8h.html + aaeb92d42f5a6e27b8ba19f18d69d142b + + Intel + Motorola + + + + ValueType + decode__database_8h.html + ad9971b6ef33e02ba2c75d19c1d2518a1 + + Unsigned + Signed + + + + frame_info.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + frame__info_8h.html + signal_info.h + FrameInfo + + + main.cpp + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + main_8cpp.html + dbc_parser.h + dbc_tree_builder.h + dbc_decode_builder.h + dbc_decoder.h + + + signal_info.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + signal__info_8h.html + SignalInfo + + + tree_node.cpp + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + tree__node_8cpp.html + tree_node.h + + + tree_node.h + /home/deeaitch/work/3.projects/git.himro.ca/automotive/dbc/ + tree__node_8h.html + frame_info.h + signal_info.h + TreeNode + + + NodeType + tree__node_8h.html + acac9cbaeea226ed297804c012dc12b16 + + Root + Frame + Signal + + + + DbcDatabase + structDbcDatabase.html + + std::vector< FrameInfo > + frames + structDbcDatabase.html + a2cade5d0234ee816132127542f8c612b + + + + + DbcDecodeBuilder + classDbcDecodeBuilder.html + + DecodeDatabase + Build + classDbcDecodeBuilder.html + a2bc6386dfb5e58976c42e22c19ec471b + (const DbcDatabase &source) const + + + + DbcDecoder + classDbcDecoder.html + + const DecodeFrame * + FindFrame + classDbcDecoder.html + ab2cfb2fb711c95d3a29365546b89f3da + (const DecodeDatabase &database, std::uint32_t canId, bool isExtended) const + + + DecodedFrameValue + Decode + classDbcDecoder.html + a345951ffe5d943a70d3a1ea1f39e74f7 + (const DecodeDatabase &database, const RawCanFrame &frame) const + + + + DbcParser + classDbcParser.html + + DbcDatabase + ParseFile + classDbcParser.html + aef72826942c9095d653fafa435855e56 + (const std::string &filePath) const + + + + DbcTreeBuilder + classDbcTreeBuilder.html + + std::unique_ptr< TreeNode > + Build + classDbcTreeBuilder.html + a7e57d067d831b14b383947fd125edd4b + (const DbcDatabase &database) const + + + + DecodeDatabase + structDecodeDatabase.html + + + DecodedFrameValue + structDecodedFrameValue.html + + const DecodeFrame * + definition + structDecodedFrameValue.html + a60dda1cc352d2c8087f0bdbc81dd266c + + + + std::vector< DecodedSignalValue > + public + structDecodedFrameValue.html + adae123ac7fbb4a5c314b64b01109f4a8 + + + + bool + valid + structDecodedFrameValue.html + a4f51c31110dba1f73a763c596372beb0 + + + + + DecodedSignalValue + structDecodedSignalValue.html + + const DecodeSignal * + definition + structDecodedSignalValue.html + acadc3b3bb21dd6b0412d342c7e6b20d7 + + + + std::int64_t + rawValue + structDecodedSignalValue.html + a5138b825940e34689f7b3891627ee9ec + + + + double + physicalValue + structDecodedSignalValue.html + a6847d05b3cb00d5e0f6c611968f57978 + + + + bool + valid + structDecodedSignalValue.html + aac0ed361af545cde48d0e6f41a859686 + + + + + DecodeFrame + structDecodeFrame.html + + std::string + name + structDecodeFrame.html + aa0a7f8fd5bfde2148dfd0d838328f579 + + + + std::uint32_t + canId + structDecodeFrame.html + a52e10215388db7df8b541b9d9909edcf + + + + bool + isExtended + structDecodeFrame.html + a3ee2348d781f8f15aaf87e8dcf57ec41 + + + + std::uint8_t + dlc + structDecodeFrame.html + a51111ac13988be372d5673d12cf3e060 + + + + std::uint32_t + pgn + structDecodeFrame.html + a1d3c54055c0cbceb73adf551f7067f23 + + + + bool + hasPgn + structDecodeFrame.html + a2551102670c4a540fced4c71da0b369d + + + + std::string + transmitter + structDecodeFrame.html + ad78241dc40c793aabb8495b6989b81a9 + + + + std::string + comment + structDecodeFrame.html + a25819ef907a32391af5c9f7cae9cdb22 + + + + std::vector< DecodeSignal > + public + structDecodeFrame.html + a7f4e71bbdec3f424b625e724e3dfbf14 + + + + + DecodeSignal + structDecodeSignal.html + + std::string + name + structDecodeSignal.html + a58cf5844f2272a23dcb9687d912e4780 + + + + std::uint32_t + startBit + structDecodeSignal.html + aaf5d7527ddf65b6355c2b4f3626df22d + + + + std::uint32_t + length + structDecodeSignal.html + acd4ef5ee30421d117b5756854302debb + + + + ByteOrder + byteOrder + structDecodeSignal.html + abdc4c4bb4a67a6d61d6ca81e8a52833d + + + + ValueType + valueType + structDecodeSignal.html + a9d37638129263b8902ba5be59baf39a8 + + + + double + factor + structDecodeSignal.html + a428c39913a366a8476dd291061354391 + + + + double + offset + structDecodeSignal.html + a92db637af4e224a0ae70173050dc3f74 + + + + double + minimum + structDecodeSignal.html + a0fb84e19a0ab3bd50b6f65c1075ebc25 + + + + double + maximum + structDecodeSignal.html + a4a6ba87142a9badbf0ca830e9e709cb7 + + + + std::string + unit + structDecodeSignal.html + a38eed9ca7581423fd8bfbedcffc12092 + + + + std::vector< std::string > + receivers + structDecodeSignal.html + abdbae62a64d2df716bf60c6b67b30eaa + + + + std::string + comment + structDecodeSignal.html + ae28c905d4a2bc86419c2a8361bfea473 + + + + + FrameInfo + structFrameInfo.html + + std::string + name + structFrameInfo.html + abb53a7f93ed7abc0ea1ae4a8ccafcdcb + + + + std::uint32_t + canId + structFrameInfo.html + af470b0742c05bfbffc31c51a68f5c05e + + + + bool + isExtended + structFrameInfo.html + a34b726afaad2ac5c697fdb2ac070cdaf + + + + std::uint32_t + pgn + structFrameInfo.html + aee518b33f1000bf0b7f6e4a87474c943 + + + + bool + hasPgn + structFrameInfo.html + a4737a5420213ad4304724e39f3a4e55d + + + + std::uint8_t + dlc + structFrameInfo.html + aa2b198ea0f55e560c123d35e7b3ecab9 + + + + std::string + transmitter + structFrameInfo.html + a92749ec3798d4211a505860fb389a9e8 + + + + std::string + comment + structFrameInfo.html + ace75121294f9d89b762080ab5643293c + + + + std::vector< SignalInfo > + public + structFrameInfo.html + a3f7e25d67ddae22f2ed50823a5a26084 + + + + + FrameKey + structFrameKey.html + + + FrameKeyHasher + structFrameKeyHasher.html + + + RawCanFrame + structRawCanFrame.html + + std::uint32_t + canId + structRawCanFrame.html + a2d0e7fa0e3d5c20bbed55ed8f7888ff4 + + + + bool + isExtended + structRawCanFrame.html + a462193d275adc1dba8bd18ffa0e36bb7 + + + + std::vector< std::uint8_t > + data + structRawCanFrame.html + a0acb487612104c99c9907344c035df83 + + + + + SignalInfo + structSignalInfo.html + + std::string + name + structSignalInfo.html + a379e422a00cad56f896cacf60455b088 + + + + std::uint32_t + startBit + structSignalInfo.html + ace290724f9801521609aedaa946d61f1 + + + + std::uint32_t + length + structSignalInfo.html + a1008b5201f71848177217bd52fb84baa + + + + bool + isLittleEndian + structSignalInfo.html + af363b1563fb4c7cc8973f9a80c06846c + + + + bool + isSigned + structSignalInfo.html + a52a52b320eef92fbcb4626307f9a498f + + + + double + factor + structSignalInfo.html + ae4f78d99a2750aa564d7eba860171499 + + + + double + offset + structSignalInfo.html + ab7d0769f47aa540656b22e4e49db517e + + + + double + minimum + structSignalInfo.html + ada7bf94fbeaa26bd08c73982b5af255b + + + + double + maximum + structSignalInfo.html + adf1c4331b9eabced0d7fdda40ff0eb52 + + + + std::string + unit + structSignalInfo.html + a1f214f03e94ef5794de2d3367bfcbd01 + + + + std::vector< std::string > + receivers + structSignalInfo.html + a2c95562fd0b29327a7fd7b1e6feee7f3 + + + + std::string + comment + structSignalInfo.html + ac99ba7563a5dad01e39c4257216953f5 + + + + + TreeNode + classTreeNode.html + + + TreeNode + classTreeNode.html + a984a98d5ccf7ef1f5a18094c6821f35d + () + + + + TreeNode + classTreeNode.html + a8e38dd591d8801d7ee3a7dbad90c67fc + (const FrameInfo &frame) + + + + TreeNode + classTreeNode.html + ab9f00f5253d56461bb2d420fd639c5ae + (const SignalInfo &signal) + + + void + AddChild + classTreeNode.html + a6161f2ebb92184eab4215d121870e788 + (std::unique_ptr< TreeNode > child) + + + std::size_t + GetChildCount + classTreeNode.html + abdd82460187dca8d3e5d66f5d5c529ea + () const + + + const TreeNode * + GetChild + classTreeNode.html + a4727ff801a2d1b9323c5ae50a35457a6 + (std::size_t index) const + + + TreeNode * + GetChild + classTreeNode.html + a81047bd7d2a4cc96b9ef5e20d0d63b5f + (std::size_t index) + + + NodeType + GetType + classTreeNode.html + afa2f4b0aafa12d3d41ed00df8e0250c9 + () const + + + const std::string & + GetName + classTreeNode.html + aaac5b8d9dc9e5ae1f367d1adbcf20e18 + () const + + + const FrameInfo * + GetFrame + classTreeNode.html + afc503b40004764163605d6dbdb4ef811 + () const + + + const SignalInfo * + GetSignal + classTreeNode.html + a226518612d0d00b5988a2c44fc21d3f1 + () const + + + + md_README + DBC Parser and Runtime Decode Module Documentation + md_README.html + + diff --git a/docs/doxygen_warnings.log b/docs/doxygen_warnings.log new file mode 100644 index 0000000..4fab2c9 --- /dev/null +++ b/docs/doxygen_warnings.log @@ -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. diff --git a/docs/html/annotated.html b/docs/html/annotated.html index bfbb64b..f42465c 100644 --- a/docs/html/annotated.html +++ b/docs/html/annotated.html @@ -5,10 +5,17 @@ -DBC framework: Class List +DBC Framework: Class List + + + + + + + @@ -18,8 +25,9 @@ -
DBC framework +
DBC Framework
+
DBC parsing and CAN signal decoding framework
@@ -27,23 +35,53 @@
- - + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+
Class List
@@ -69,9 +107,12 @@
+ - + diff --git a/docs/html/annotated_dup.js b/docs/html/annotated_dup.js new file mode 100644 index 0000000..54910e2 --- /dev/null +++ b/docs/html/annotated_dup.js @@ -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" ] +]; \ No newline at end of file diff --git a/docs/html/classDbcDecodeBuilder-members.html b/docs/html/classDbcDecodeBuilder-members.html index 79f5a08..5bf2363 100644 --- a/docs/html/classDbcDecodeBuilder-members.html +++ b/docs/html/classDbcDecodeBuilder-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
DBC framework +
DBC Framework
+
DBC parsing and CAN signal decoding framework
@@ -27,23 +35,53 @@
- - + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+
DbcDecodeBuilder Member List
@@ -53,9 +91,12 @@
Build(const DbcDatabase &source) constDbcDecodeBuilder
+ - + diff --git a/docs/html/classDbcDecodeBuilder.html b/docs/html/classDbcDecodeBuilder.html index c69d60b..41cda74 100644 --- a/docs/html/classDbcDecodeBuilder.html +++ b/docs/html/classDbcDecodeBuilder.html @@ -5,10 +5,17 @@ -DBC framework: DbcDecodeBuilder Class Reference +DBC Framework: DbcDecodeBuilder Class Reference + + + + + + + @@ -18,8 +25,9 @@ -
DBC framework +
DBC Framework
+
DBC parsing and CAN signal decoding framework
@@ -27,23 +35,53 @@
- - + + + + + +
+ +
+
+
+ +
+ +
+
+ + +
+ +
+
Public Member Functions | @@ -95,9 +133,7 @@ Public Member Functions

Definition at line 14 of file dbc_decode_builder.cpp.

-

References DecodeSignal::byteOrder, DecodeFrame::canId, FrameInfo::canId, DecodeSignal::comment, DecodeFrame::comment, FrameInfo::comment, SignalInfo::comment, DecodeFrame::dlc, FrameInfo::dlc, DecodeSignal::factor, SignalInfo::factor, DecodeDatabase::frameIndexByKey, DbcDatabase::frames, DecodeDatabase::frames, DecodeFrame::hasPgn, FrameInfo::hasPgn, Intel, DecodeFrame::isExtended, FrameInfo::isExtended, SignalInfo::isLittleEndian, SignalInfo::isSigned, DecodeSignal::length, SignalInfo::length, DecodeSignal::maximum, SignalInfo::maximum, DecodeSignal::minimum, SignalInfo::minimum, Motorola, DecodeSignal::name, DecodeFrame::name, FrameInfo::name, SignalInfo::name, DecodeSignal::offset, SignalInfo::offset, DecodeFrame::pgn, FrameInfo::pgn, DecodeSignal::receivers, SignalInfo::receivers, DecodeFrame::signals, FrameInfo::signals, Signed, DecodeSignal::startBit, SignalInfo::startBit, DecodeFrame::transmitter, FrameInfo::transmitter, DecodeSignal::unit, SignalInfo::unit, Unsigned, and DecodeSignal::valueType.

- -

Referenced by main().

+

References DecodeSignal::byteOrder, DecodeFrame::canId, FrameInfo::canId, DecodeFrame::comment, FrameInfo::comment, DecodeFrame::dlc, FrameInfo::dlc, DbcDatabase::frames, DecodeFrame::hasPgn, FrameInfo::hasPgn, DecodeFrame::isExtended, FrameInfo::isExtended, SignalInfo::isLittleEndian, DecodeSignal::length, SignalInfo::length, DecodeSignal::name, DecodeFrame::name, FrameInfo::name, SignalInfo::name, DecodeFrame::pgn, FrameInfo::pgn, DecodeSignal::startBit, SignalInfo::startBit, DecodeFrame::transmitter, and FrameInfo::transmitter.

@@ -106,9 +142,13 @@ Public Member Functions
  • dbc_decode_builder.cpp
  • + - + diff --git a/docs/html/classDbcDecodeBuilder.js b/docs/html/classDbcDecodeBuilder.js new file mode 100644 index 0000000..bd3ef09 --- /dev/null +++ b/docs/html/classDbcDecodeBuilder.js @@ -0,0 +1,4 @@ +var classDbcDecodeBuilder = +[ + [ "Build", "classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b", null ] +]; \ No newline at end of file diff --git a/docs/html/classDbcDecoder-members.html b/docs/html/classDbcDecoder-members.html index 550ff86..250d9a8 100644 --- a/docs/html/classDbcDecoder-members.html +++ b/docs/html/classDbcDecoder-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DbcDecoder Member List
    @@ -52,15 +90,14 @@

    This is the complete list of members for DbcDecoder, including all inherited members.

    - - - - - +
    Decode(const DecodeDatabase &database, const RawCanFrame &frame) constDbcDecoder
    ExtractIntel(const std::vector< std::uint8_t > &data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &value)DbcDecoderprivatestatic
    ExtractMotorola(const std::vector< std::uint8_t > &data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &value)DbcDecoderprivatestatic
    ExtractUnsigned(const std::vector< std::uint8_t > &data, const DecodeSignal &signal, std::uint64_t &value)DbcDecoderprivatestatic
    FindFrame(const DecodeDatabase &database, std::uint32_t canId, bool isExtended) constDbcDecoder
    SignExtend(std::uint64_t value, std::uint32_t bitLength)DbcDecoderprivatestatic
    FindFrame(const DecodeDatabase &database, std::uint32_t canId, bool isExtended) constDbcDecoder
    + - + diff --git a/docs/html/classDbcDecoder.html b/docs/html/classDbcDecoder.html index 7c48056..c748da7 100644 --- a/docs/html/classDbcDecoder.html +++ b/docs/html/classDbcDecoder.html @@ -5,10 +5,17 @@ -DBC framework: DbcDecoder Class Reference +DBC Framework: DbcDecoder Class Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,27 +35,56 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DbcDecoder Class Reference
    @@ -66,219 +103,12 @@ Public Member Functions DecodedFrameValue Decode (const DecodeDatabase &database, const RawCanFrame &frame) const  Decode one raw CAN frame. More...
      - - - - - - - - - -

    -Static Private Member Functions

    static bool ExtractUnsigned (const std::vector< std::uint8_t > &data, const DecodeSignal &signal, std::uint64_t &value)
     
    static bool ExtractIntel (const std::vector< std::uint8_t > &data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &value)
     
    static bool ExtractMotorola (const std::vector< std::uint8_t > &data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &value)
     
    static std::int64_t SignExtend (std::uint64_t value, std::uint32_t bitLength)
     

    Detailed Description

    Runtime CAN decoder using prebuilt decode database.

    Definition at line 70 of file dbc_decoder.h.

    Member Function Documentation

    - -

    ◆ Decode()

    - -
    -
    - - - - - - - - - - - - - - - - - - -
    DecodedFrameValue DbcDecoder::Decode (const DecodeDatabasedatabase,
    const RawCanFrameframe 
    ) const
    -
    -
    - -

    ◆ ExtractIntel()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    bool DbcDecoder::ExtractIntel (const std::vector< std::uint8_t > & data,
    std::uint32_t startBit,
    std::uint32_t length,
    std::uint64_t & value 
    )
    -
    -staticprivate
    -
    - -

    Definition at line 82 of file dbc_decoder.cpp.

    - -

    Referenced by ExtractUnsigned().

    - -
    -
    - -

    ◆ ExtractMotorola()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    bool DbcDecoder::ExtractMotorola (const std::vector< std::uint8_t > & data,
    std::uint32_t startBit,
    std::uint32_t length,
    std::uint64_t & value 
    )
    -
    -staticprivate
    -
    - -

    Definition at line 105 of file dbc_decoder.cpp.

    - -

    Referenced by ExtractUnsigned().

    - -
    -
    - -

    ◆ ExtractUnsigned()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    bool DbcDecoder::ExtractUnsigned (const std::vector< std::uint8_t > & data,
    const DecodeSignalsignal,
    std::uint64_t & value 
    )
    -
    -staticprivate
    -
    - -

    Definition at line 70 of file dbc_decoder.cpp.

    - -

    References DecodeSignal::byteOrder, ExtractIntel(), ExtractMotorola(), Intel, DecodeSignal::length, and DecodeSignal::startBit.

    - -

    Referenced by Decode().

    - -
    -

    ◆ FindFrame()

    @@ -324,49 +154,49 @@ Static Private Member Functions

    Definition at line 14 of file dbc_decoder.cpp.

    -

    References DecodeDatabase::frameIndexByKey, and DecodeDatabase::frames.

    -

    Referenced by Decode().

    - -

    ◆ SignExtend()

    + +

    ◆ Decode()

    - - - - - -
    - + - - + + - - + + - +
    std::int64_t DbcDecoder::SignExtend DecodedFrameValue DbcDecoder::Decode (std::uint64_t value, const DecodeDatabasedatabase,
    std::uint32_t bitLength const RawCanFrameframe 
    ) const
    -
    -staticprivate
    -

    Definition at line 144 of file dbc_decoder.cpp.

    +

    Decode one raw CAN frame.

    +
    Parameters
    + + + +
    databaseRuntime decode database.
    frameRaw CAN frame.
    +
    +
    +
    Returns
    Decoded frame value.
    -

    Referenced by Decode().

    +

    Definition at line 31 of file dbc_decoder.cpp.

    + +

    References RawCanFrame::canId, RawCanFrame::data, DecodedSignalValue::definition, DecodedFrameValue::definition, FindFrame(), RawCanFrame::isExtended, DecodedSignalValue::valid, DecodedFrameValue::valid, and DecodeSignal::valueType.

    @@ -375,9 +205,13 @@ Static Private Member Functions
  • dbc_decoder.cpp
  • + - + diff --git a/docs/html/classDbcDecoder.js b/docs/html/classDbcDecoder.js new file mode 100644 index 0000000..e36dac7 --- /dev/null +++ b/docs/html/classDbcDecoder.js @@ -0,0 +1,5 @@ +var classDbcDecoder = +[ + [ "FindFrame", "classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da", null ], + [ "Decode", "classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7", null ] +]; \ No newline at end of file diff --git a/docs/html/classDbcParser-members.html b/docs/html/classDbcParser-members.html index 13cf41d..cf45c26 100644 --- a/docs/html/classDbcParser-members.html +++ b/docs/html/classDbcParser-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DbcParser Member List
    @@ -51,23 +89,14 @@

    This is the complete list of members for DbcParser, including all inherited members.

    - - - - - - - - - - - - - +
    FindFrameById(DbcDatabase &database, std::uint32_t canId, bool isExtended)DbcParserprivatestatic
    FindSignalByName(FrameInfo &frame, const std::string &signalName)DbcParserprivatestatic
    IsCommentLine(const std::string &line)DbcParserprivatestatic
    IsFrameLine(const std::string &line)DbcParserprivatestatic
    IsSignalLine(const std::string &line)DbcParserprivatestatic
    NormalizeCanId(std::uint32_t rawCanId, std::uint32_t &normalizedCanId, bool &isExtended)DbcParserprivatestatic
    ParseCommentLine(const std::string &line, DbcDatabase &database)DbcParserprivatestatic
    ParseFile(const std::string &filePath) constDbcParser
    ParseFrameLine(const std::string &line)DbcParserprivatestatic
    ParseSignalLine(const std::string &line)DbcParserprivatestatic
    SplitReceivers(const std::string &text)DbcParserprivatestatic
    Trim(const std::string &text)DbcParserprivatestatic
    TryExtractPgn(std::uint32_t canId, bool isExtended, bool &hasPgn)DbcParserprivatestatic
    ParseFile(const std::string &filePath) constDbcParser
    + - + diff --git a/docs/html/classDbcParser.html b/docs/html/classDbcParser.html index 95bb025..449ecd9 100644 --- a/docs/html/classDbcParser.html +++ b/docs/html/classDbcParser.html @@ -5,10 +5,17 @@ -DBC framework: DbcParser Class Reference +DBC Framework: DbcParser Class Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,27 +35,56 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DbcParser Class Reference
    @@ -63,33 +100,6 @@ Public Member Functions DbcDatabase ParseFile (const std::string &filePath) const  Parse DBC file. More...
      - - - - - - - - - - - - - - - - - - - - - - - - - -

    -Static Private Member Functions

    static bool IsFrameLine (const std::string &line)
     
    static bool IsSignalLine (const std::string &line)
     
    static bool IsCommentLine (const std::string &line)
     
    static std::string Trim (const std::string &text)
     
    static std::vector< std::string > SplitReceivers (const std::string &text)
     
    static std::uint32_t TryExtractPgn (std::uint32_t canId, bool isExtended, bool &hasPgn)
     
    static void NormalizeCanId (std::uint32_t rawCanId, std::uint32_t &normalizedCanId, bool &isExtended)
     
    static FrameInfo ParseFrameLine (const std::string &line)
     
    static SignalInfo ParseSignalLine (const std::string &line)
     
    static void ParseCommentLine (const std::string &line, DbcDatabase &database)
     
    static FrameInfoFindFrameById (DbcDatabase &database, std::uint32_t canId, bool isExtended)
     
    static SignalInfoFindSignalByName (FrameInfo &frame, const std::string &signalName)
     

    Detailed Description

    Minimal DBC parser.

    @@ -107,274 +117,6 @@ Static Private Member Functions

    Definition at line 35 of file dbc_parser.h.

    Member Function Documentation

    - -

    ◆ FindFrameById()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    FrameInfo * DbcParser::FindFrameById (DbcDatabasedatabase,
    std::uint32_t canId,
    bool isExtended 
    )
    -
    -staticprivate
    -
    - -

    Definition at line 337 of file dbc_parser.cpp.

    - -

    References DbcDatabase::frames.

    - -

    Referenced by ParseCommentLine().

    - -
    -
    - -

    ◆ FindSignalByName()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    SignalInfo * DbcParser::FindSignalByName (FrameInfoframe,
    const std::string & signalName 
    )
    -
    -staticprivate
    -
    - -

    Definition at line 349 of file dbc_parser.cpp.

    - -

    References FrameInfo::signals.

    - -

    Referenced by ParseCommentLine().

    - -
    -
    - -

    ◆ IsCommentLine()

    - -
    -
    - - - - - -
    - - - - - - - - -
    bool DbcParser::IsCommentLine (const std::string & line)
    -
    -staticprivate
    -
    - -

    Definition at line 79 of file dbc_parser.cpp.

    - -

    Referenced by ParseFile().

    - -
    -
    - -

    ◆ IsFrameLine()

    - -
    -
    - - - - - -
    - - - - - - - - -
    bool DbcParser::IsFrameLine (const std::string & line)
    -
    -staticprivate
    -
    - -

    Definition at line 71 of file dbc_parser.cpp.

    - -

    Referenced by ParseFile().

    - -
    -
    - -

    ◆ IsSignalLine()

    - -
    -
    - - - - - -
    - - - - - - - - -
    bool DbcParser::IsSignalLine (const std::string & line)
    -
    -staticprivate
    -
    - -

    Definition at line 75 of file dbc_parser.cpp.

    - -

    Referenced by ParseFile().

    - -
    -
    - -

    ◆ NormalizeCanId()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    void DbcParser::NormalizeCanId (std::uint32_t rawCanId,
    std::uint32_t & normalizedCanId,
    bool & isExtended 
    )
    -
    -staticprivate
    -
    - -

    Definition at line 101 of file dbc_parser.cpp.

    - -

    Referenced by ParseCommentLine(), and ParseFrameLine().

    - -
    -
    - -

    ◆ ParseCommentLine()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    void DbcParser::ParseCommentLine (const std::string & line,
    DbcDatabasedatabase 
    )
    -
    -staticprivate
    -
    - -

    Definition at line 274 of file dbc_parser.cpp.

    - -

    References FrameInfo::comment, SignalInfo::comment, FindFrameById(), FindSignalByName(), and NormalizeCanId().

    - -

    Referenced by ParseFile().

    - -
    -

    ◆ ParseFile()

    @@ -408,183 +150,7 @@ Static Private Member Functions

    Definition at line 40 of file dbc_parser.cpp.

    -

    References DbcDatabase::frames, IsCommentLine(), IsFrameLine(), IsSignalLine(), ParseCommentLine(), ParseFrameLine(), ParseSignalLine(), FrameInfo::signals, and Trim().

    - -

    Referenced by main().

    - -
    - - -

    ◆ ParseFrameLine()

    - -
    -
    - - - - - -
    - - - - - - - - -
    FrameInfo DbcParser::ParseFrameLine (const std::string & line)
    -
    -staticprivate
    -
    - -

    Definition at line 142 of file dbc_parser.cpp.

    - -

    References FrameInfo::canId, FrameInfo::dlc, FrameInfo::hasPgn, FrameInfo::isExtended, FrameInfo::name, NormalizeCanId(), FrameInfo::pgn, FrameInfo::transmitter, and TryExtractPgn().

    - -

    Referenced by ParseFile().

    - -
    -
    - -

    ◆ ParseSignalLine()

    - -
    -
    - - - - - -
    - - - - - - - - -
    SignalInfo DbcParser::ParseSignalLine (const std::string & line)
    -
    -staticprivate
    -
    - -

    Definition at line 181 of file dbc_parser.cpp.

    - -

    References SignalInfo::factor, SignalInfo::isLittleEndian, SignalInfo::isSigned, SignalInfo::length, SignalInfo::maximum, SignalInfo::minimum, SignalInfo::name, SignalInfo::offset, SignalInfo::receivers, SplitReceivers(), SignalInfo::startBit, anonymous_namespace{dbc_parser.cpp}::TrimText(), and SignalInfo::unit.

    - -

    Referenced by ParseFile().

    - -
    -
    - -

    ◆ SplitReceivers()

    - -
    -
    - - - - - -
    - - - - - - - - -
    std::vector< std::string > DbcParser::SplitReceivers (const std::string & text)
    -
    -staticprivate
    -
    - -

    Definition at line 87 of file dbc_parser.cpp.

    - -

    References anonymous_namespace{dbc_parser.cpp}::TrimText().

    - -

    Referenced by ParseSignalLine().

    - -
    -
    - -

    ◆ Trim()

    - -
    -
    - - - - - -
    - - - - - - - - -
    std::string DbcParser::Trim (const std::string & text)
    -
    -staticprivate
    -
    - -

    Definition at line 83 of file dbc_parser.cpp.

    - -

    References anonymous_namespace{dbc_parser.cpp}::TrimText().

    - -

    Referenced by ParseFile().

    - -
    -
    - -

    ◆ TryExtractPgn()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - -
    std::uint32_t DbcParser::TryExtractPgn (std::uint32_t canId,
    bool isExtended,
    bool & hasPgn 
    )
    -
    -staticprivate
    -
    - -

    Definition at line 118 of file dbc_parser.cpp.

    - -

    Referenced by ParseFrameLine().

    +

    References DbcDatabase::frames.

    @@ -593,9 +159,13 @@ Static Private Member Functions
  • dbc_parser.cpp
  • + - + diff --git a/docs/html/classDbcParser.js b/docs/html/classDbcParser.js new file mode 100644 index 0000000..46247c3 --- /dev/null +++ b/docs/html/classDbcParser.js @@ -0,0 +1,4 @@ +var classDbcParser = +[ + [ "ParseFile", "classDbcParser.html#aef72826942c9095d653fafa435855e56", null ] +]; \ No newline at end of file diff --git a/docs/html/classDbcTreeBuilder-members.html b/docs/html/classDbcTreeBuilder-members.html index 1c0bc40..46759e3 100644 --- a/docs/html/classDbcTreeBuilder-members.html +++ b/docs/html/classDbcTreeBuilder-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DbcTreeBuilder Member List
    @@ -53,9 +91,12 @@
    Build(const DbcDatabase &database) constDbcTreeBuilder
    + - + diff --git a/docs/html/classDbcTreeBuilder.html b/docs/html/classDbcTreeBuilder.html index fa81693..6003542 100644 --- a/docs/html/classDbcTreeBuilder.html +++ b/docs/html/classDbcTreeBuilder.html @@ -5,10 +5,17 @@ -DBC framework: DbcTreeBuilder Class Reference +DBC Framework: DbcTreeBuilder Class Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    Public Member Functions | @@ -95,9 +133,7 @@ Public Member Functions

    Definition at line 14 of file dbc_tree_builder.cpp.

    -

    References DbcDatabase::frames, and FrameInfo::signals.

    - -

    Referenced by main().

    +

    References DbcDatabase::frames.

    @@ -106,9 +142,13 @@ Public Member Functions
  • dbc_tree_builder.cpp
  • + - + diff --git a/docs/html/classDbcTreeBuilder.js b/docs/html/classDbcTreeBuilder.js new file mode 100644 index 0000000..b61edc1 --- /dev/null +++ b/docs/html/classDbcTreeBuilder.js @@ -0,0 +1,4 @@ +var classDbcTreeBuilder = +[ + [ "Build", "classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b", null ] +]; \ No newline at end of file diff --git a/docs/html/classTreeNode-members.html b/docs/html/classTreeNode-members.html index 4095d06..18ef360 100644 --- a/docs/html/classTreeNode-members.html +++ b/docs/html/classTreeNode-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    TreeNode Member List
    @@ -59,23 +97,21 @@ GetName() constTreeNode GetSignal() constTreeNode GetType() constTreeNode - m_childrenTreeNodeprivate - m_frameTreeNodeprivate - m_nameTreeNodeprivate - m_signalTreeNodeprivate - m_typeTreeNodeprivate - operator=(const TreeNode &)=deleteTreeNode - operator=(TreeNode &&)=defaultTreeNode - TreeNode()TreeNode - TreeNode(const FrameInfo &frame)TreeNodeexplicit - TreeNode(const SignalInfo &signal)TreeNodeexplicit - TreeNode(const TreeNode &)=deleteTreeNode - TreeNode(TreeNode &&)=defaultTreeNode - ~TreeNode()=defaultTreeNode + operator=(const TreeNode &)=delete (defined in TreeNode)TreeNode + operator=(TreeNode &&)=default (defined in TreeNode)TreeNode + TreeNode()TreeNode + TreeNode(const FrameInfo &frame)TreeNodeexplicit + TreeNode(const SignalInfo &signal)TreeNodeexplicit + TreeNode(const TreeNode &)=delete (defined in TreeNode)TreeNode + TreeNode(TreeNode &&)=default (defined in TreeNode)TreeNode + ~TreeNode()=default (defined in TreeNode)TreeNode
    + - + diff --git a/docs/html/classTreeNode.html b/docs/html/classTreeNode.html index e414e89..379fcae 100644 --- a/docs/html/classTreeNode.html +++ b/docs/html/classTreeNode.html @@ -5,10 +5,17 @@ -DBC framework: TreeNode Class Reference +DBC Framework: TreeNode Class Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,27 +35,56 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    TreeNode Class Reference
    @@ -69,15 +106,17 @@ Public Member Functions  TreeNode (const SignalInfo &signal)  Create signal node. More...
      - ~TreeNode ()=default -  - TreeNode (const TreeNode &)=delete +TreeNode (const TreeNode &)=delete   -TreeNodeoperator= (const TreeNode &)=delete + +TreeNodeoperator= (const TreeNode &)=delete   - TreeNode (TreeNode &&)=default +TreeNode (TreeNode &&)=default   -TreeNodeoperator= (TreeNode &&)=default + +TreeNodeoperator= (TreeNode &&)=default   void AddChild (std::unique_ptr< TreeNode > child)  Add child node. More...
    @@ -103,19 +142,6 @@ Public Member Functions const SignalInfoGetSignal () const  Get signal payload if node is signal. More...
      - - - - - - - - - - - -

    -Private Attributes

    NodeType m_type
     
    std::string m_name
     
    std::vector< std::unique_ptr< TreeNode > > m_children
     
    std::unique_ptr< FrameInfom_frame
     
    std::unique_ptr< SignalInfom_signal
     

    Detailed Description

    Tree node for later use in model/view or other hierarchy consumers.

    @@ -123,7 +149,7 @@ Private Attributes

    Definition at line 35 of file tree_node.h.

    Constructor & Destructor Documentation

    -

    ◆ TreeNode() [1/5]

    +

    ◆ TreeNode() [1/3]

    @@ -141,12 +167,10 @@ Private Attributes

    Definition at line 14 of file tree_node.cpp.

    -

    References Root.

    -
    -

    ◆ TreeNode() [2/5]

    +

    ◆ TreeNode() [2/3]

    @@ -179,12 +203,10 @@ Private Attributes

    Definition at line 22 of file tree_node.cpp.

    -

    References Frame.

    -
    -

    ◆ TreeNode() [3/5]

    +

    ◆ TreeNode() [3/3]

    @@ -217,85 +239,6 @@ Private Attributes

    Definition at line 30 of file tree_node.cpp.

    -

    References Signal.

    - -
    -
    - -

    ◆ ~TreeNode()

    - -
    -
    - - - - - -
    - - - - - - - -
    TreeNode::~TreeNode ()
    -
    -default
    -
    - -
    -
    - -

    ◆ TreeNode() [4/5]

    - -
    -
    - - - - - -
    - - - - - - - - -
    TreeNode::TreeNode (const TreeNode)
    -
    -delete
    -
    - -
    -
    - -

    ◆ TreeNode() [5/5]

    - -
    -
    - - - - - -
    - - - - - - - - -
    TreeNode::TreeNode (TreeNode && )
    -
    -default
    -
    -

    Member Function Documentation

    @@ -325,43 +268,32 @@ Private Attributes

    Definition at line 38 of file tree_node.cpp.

    -

    References m_children.

    -
    - -

    ◆ GetChild() [1/2]

    + +

    ◆ GetChildCount()

    - + - - - + +
    TreeNode * TreeNode::GetChild std::size_t TreeNode::GetChildCount (std::size_t index)) const
    -

    Get mutable child by index.

    -
    Parameters
    - - -
    indexChild index.
    -
    -
    -
    Returns
    Child pointer or nullptr if index is invalid.
    +

    Get child count.

    +
    Returns
    Number of children.
    -

    Definition at line 54 of file tree_node.cpp.

    - -

    References m_children.

    +

    Definition at line 43 of file tree_node.cpp.

    -

    ◆ GetChild() [2/2]

    +

    ◆ GetChild() [1/2]

    @@ -387,113 +319,34 @@ Private Attributes

    Definition at line 47 of file tree_node.cpp.

    -

    References m_children.

    - -

    Referenced by PrintTree().

    -
    - -

    ◆ GetChildCount()

    + +

    ◆ GetChild() [2/2]

    - + - - + + +
    std::size_t TreeNode::GetChildCount TreeNode * TreeNode::GetChild () conststd::size_t index)
    -

    Get child count.

    -
    Returns
    Number of children.
    +

    Get mutable child by index.

    +
    Parameters
    + + +
    indexChild index.
    +
    +
    +
    Returns
    Child pointer or nullptr if index is invalid.
    -

    Definition at line 43 of file tree_node.cpp.

    - -

    References m_children.

    - -

    Referenced by PrintTree().

    - -
    -
    - -

    ◆ GetFrame()

    - -
    -
    - - - - - - - -
    const FrameInfo * TreeNode::GetFrame () const
    -
    - -

    Get frame payload if node is frame.

    -
    Returns
    Pointer to frame info or nullptr.
    - -

    Definition at line 69 of file tree_node.cpp.

    - -

    References m_frame.

    - -

    Referenced by PrintTree().

    - -
    -
    - -

    ◆ GetName()

    - -
    -
    - - - - - - - -
    const std::string & TreeNode::GetName () const
    -
    - -

    Get display name.

    -
    Returns
    Node name.
    - -

    Definition at line 65 of file tree_node.cpp.

    - -

    References m_name.

    - -

    Referenced by PrintTree().

    - -
    -
    - -

    ◆ GetSignal()

    - -
    -
    - - - - - - - -
    const SignalInfo * TreeNode::GetSignal () const
    -
    - -

    Get signal payload if node is signal.

    -
    Returns
    Pointer to signal info or nullptr.
    - -

    Definition at line 73 of file tree_node.cpp.

    - -

    References m_signal.

    - -

    Referenced by PrintTree().

    +

    Definition at line 54 of file tree_node.cpp.

    @@ -517,192 +370,71 @@ Private Attributes

    Definition at line 61 of file tree_node.cpp.

    -

    References m_type.

    - -

    Referenced by PrintTree().

    - - -

    ◆ operator=() [1/2]

    + +

    ◆ GetName()

    - - - - - -
    - + - - +
    TreeNode & TreeNode::operator= const std::string & TreeNode::GetName (const TreeNode ) const
    -
    -delete
    +

    Get display name.

    +
    Returns
    Node name.
    + +

    Definition at line 65 of file tree_node.cpp.

    +
    - -

    ◆ operator=() [2/2]

    + +

    ◆ GetFrame()

    - - - - - -
    - + - - +
    TreeNode & TreeNode::operator= const FrameInfo * TreeNode::GetFrame (TreeNode &&  ) const
    -
    -default
    +

    Get frame payload if node is frame.

    +
    Returns
    Pointer to frame info or nullptr.
    + +

    Definition at line 69 of file tree_node.cpp.

    +
    -

    Member Data Documentation

    - -

    ◆ m_children

    + +

    ◆ GetSignal()

    - - - - - -
    - + + + +
    std::vector<std::unique_ptr<TreeNode> > TreeNode::m_childrenconst SignalInfo * TreeNode::GetSignal () const
    -
    -private
    -

    Definition at line 115 of file tree_node.h.

    +

    Get signal payload if node is signal.

    +
    Returns
    Pointer to signal info or nullptr.
    -

    Referenced by AddChild(), GetChild(), and GetChildCount().

    - -
    -
    - -

    ◆ m_frame

    - -
    -
    - - - - - -
    - - - - -
    std::unique_ptr<FrameInfo> TreeNode::m_frame
    -
    -private
    -
    - -

    Definition at line 116 of file tree_node.h.

    - -

    Referenced by GetFrame().

    - -
    -
    - -

    ◆ m_name

    - -
    -
    - - - - - -
    - - - - -
    std::string TreeNode::m_name
    -
    -private
    -
    - -

    Definition at line 114 of file tree_node.h.

    - -

    Referenced by GetName().

    - -
    -
    - -

    ◆ m_signal

    - -
    -
    - - - - - -
    - - - - -
    std::unique_ptr<SignalInfo> TreeNode::m_signal
    -
    -private
    -
    - -

    Definition at line 117 of file tree_node.h.

    - -

    Referenced by GetSignal().

    - -
    -
    - -

    ◆ m_type

    - -
    -
    - - - - - -
    - - - - -
    NodeType TreeNode::m_type
    -
    -private
    -
    - -

    Definition at line 113 of file tree_node.h.

    - -

    Referenced by GetType().

    +

    Definition at line 73 of file tree_node.cpp.

    @@ -711,9 +443,13 @@ Private Attributes
  • tree_node.cpp
  • + - + diff --git a/docs/html/classTreeNode.js b/docs/html/classTreeNode.js new file mode 100644 index 0000000..edfa15e --- /dev/null +++ b/docs/html/classTreeNode.js @@ -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 ] +]; \ No newline at end of file diff --git a/docs/html/classes.html b/docs/html/classes.html index 13d90c1..bada205 100644 --- a/docs/html/classes.html +++ b/docs/html/classes.html @@ -5,10 +5,17 @@ -DBC framework: Class Index +DBC Framework: Class Index + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    Class Index
    @@ -67,9 +105,12 @@
    TreeNode
    + - + diff --git a/docs/html/dbc.qch b/docs/html/dbc.qch index 1a4d077..72a7fb2 100644 Binary files a/docs/html/dbc.qch and b/docs/html/dbc.qch differ diff --git a/docs/html/dbc__database_8h.html b/docs/html/dbc__database_8h.html index 8165570..1c08ec9 100644 --- a/docs/html/dbc__database_8h.html +++ b/docs/html/dbc__database_8h.html @@ -5,10 +5,17 @@ -DBC framework: dbc_database.h File Reference +DBC Framework: dbc_database.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    @@ -69,9 +108,13 @@ Classes

    Definition in file dbc_database.h.

    + - + diff --git a/docs/html/dbc__database_8h.js b/docs/html/dbc__database_8h.js new file mode 100644 index 0000000..1514ec6 --- /dev/null +++ b/docs/html/dbc__database_8h.js @@ -0,0 +1,4 @@ +var dbc__database_8h = +[ + [ "DbcDatabase", "structDbcDatabase.html", "structDbcDatabase" ] +]; \ No newline at end of file diff --git a/docs/html/dbc__database_8h_source.html b/docs/html/dbc__database_8h_source.html index 614d235..d076836 100644 --- a/docs/html/dbc__database_8h_source.html +++ b/docs/html/dbc__database_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_database.h Source File +DBC Framework: dbc_database.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,49 +35,67 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_database.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_database.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef DBC_DATABASE_H
    13#define DBC_DATABASE_H
    14
    15#include <vector>
    16
    17#include "frame_info.h"
    -
    18
    -
    19/**
    -
    20 * @brief Parsed DBC content stored in a simple internal form.
    -
    21 */
    +
    18
    -
    23 std::vector<FrameInfo> frames; /**< All frames found in the DBC file. */
    +
    23 std::vector<FrameInfo> frames;
    24};
    25
    26#endif /* DBC_DATABASE_H */
    @@ -77,9 +103,13 @@
    Parsed DBC content stored in a simple internal form.
    Definition: dbc_database.h:22
    std::vector< FrameInfo > frames
    Definition: dbc_database.h:23
    +
    - + diff --git a/docs/html/dbc__decode__builder_8cpp.html b/docs/html/dbc__decode__builder_8cpp.html index 790675e..f04e5d1 100644 --- a/docs/html/dbc__decode__builder_8cpp.html +++ b/docs/html/dbc__decode__builder_8cpp.html @@ -5,10 +5,17 @@ -DBC framework: dbc_decode_builder.cpp File Reference +DBC Framework: dbc_decode_builder.cpp File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_decode_builder.cpp File Reference
    @@ -59,9 +98,13 @@

    Definition in file dbc_decode_builder.cpp.

    + - + diff --git a/docs/html/dbc__decode__builder_8cpp_source.html b/docs/html/dbc__decode__builder_8cpp_source.html index a7abccf..69dab41 100644 --- a/docs/html/dbc__decode__builder_8cpp_source.html +++ b/docs/html/dbc__decode__builder_8cpp_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_decode_builder.cpp Source File +DBC Framework: dbc_decode_builder.cpp Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_decode_builder.cpp
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_decode_builder.cpp
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#include "dbc_decode_builder.h"
    13
    @@ -76,15 +105,15 @@
    27 targetFrame.transmitter = sourceFrame.transmitter;
    28 targetFrame.comment = sourceFrame.comment;
    29
    -
    30 for (std::size_t signalIndex = 0U; signalIndex < sourceFrame.signals.size(); ++signalIndex) {
    -
    31 const SignalInfo &sourceSignal = sourceFrame.signals[signalIndex];
    +
    30 for (std::size_t signalIndex = 0U; signalIndex < sourceFrame.signals.size(); ++signalIndex) {
    +
    31 const SignalInfo &sourceSignal = sourceFrame.signals[signalIndex];
    32 DecodeSignal targetSignal;
    33
    34 targetSignal.name = sourceSignal.name;
    35 targetSignal.startBit = sourceSignal.startBit;
    36 targetSignal.length = sourceSignal.length;
    -
    37 targetSignal.byteOrder = sourceSignal.isLittleEndian ? ByteOrder::Intel : ByteOrder::Motorola;
    -
    38 targetSignal.valueType = sourceSignal.isSigned ? ValueType::Signed : ValueType::Unsigned;
    +
    37 targetSignal.byteOrder = sourceSignal.isLittleEndian ? ByteOrder::Intel : ByteOrder::Motorola;
    +
    38 targetSignal.valueType = sourceSignal.isSigned ? ValueType::Signed : ValueType::Unsigned;
    39 targetSignal.factor = sourceSignal.factor;
    40 targetSignal.offset = sourceSignal.offset;
    41 targetSignal.minimum = sourceSignal.minimum;
    @@ -93,32 +122,25 @@
    44 targetSignal.receivers = sourceSignal.receivers;
    45 targetSignal.comment = sourceSignal.comment;
    46
    -
    47 targetFrame.signals.push_back (targetSignal);
    +
    47 targetFrame.signals.push_back (targetSignal);
    48 }
    49
    -
    50 result.frames.push_back (targetFrame);
    -
    51 result.frameIndexByKey[FrameKey (targetFrame.canId, targetFrame.isExtended)] =
    -
    52 result.frames.size() - 1U;
    +
    50 result.frames.push_back (targetFrame);
    +
    51 result.frameIndexByKey[FrameKey (targetFrame.canId, targetFrame.isExtended)] =
    +
    52 result.frames.size() - 1U;
    53 }
    54
    55 return result;
    56}
    DecodeDatabase Build(const DbcDatabase &source) const
    Build runtime decode database.
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    - - - -
    Parsed DBC content stored in a simple internal form.
    Definition: dbc_database.h:22
    std::vector< FrameInfo > frames
    Definition: dbc_database.h:23
    Runtime decode database with fast lookup by CAN ID.
    -
    std::vector< DecodeFrame > frames
    -
    std::unordered_map< FrameKey, std::size_t, FrameKeyHasher > frameIndexByKey
    Runtime-ready frame definition.
    std::uint32_t pgn
    std::string comment
    -
    std::vector< DecodeSignal > signals
    std::uint8_t dlc
    std::uint32_t canId
    @@ -141,7 +163,6 @@
    bool isExtended
    Definition: frame_info.h:27
    bool hasPgn
    Definition: frame_info.h:29
    std::string transmitter
    Definition: frame_info.h:31
    -
    std::vector< SignalInfo > signals
    Definition: frame_info.h:33
    std::uint8_t dlc
    Definition: frame_info.h:30
    std::string name
    Definition: frame_info.h:25
    std::string comment
    Definition: frame_info.h:32
    @@ -162,9 +183,13 @@
    double factor
    Definition: signal_info.h:28
    bool isLittleEndian
    Definition: signal_info.h:26
    +
    - + diff --git a/docs/html/dbc__decode__builder_8h.html b/docs/html/dbc__decode__builder_8h.html index e22e560..5830c0e 100644 --- a/docs/html/dbc__decode__builder_8h.html +++ b/docs/html/dbc__decode__builder_8h.html @@ -5,10 +5,17 @@ -DBC framework: dbc_decode_builder.h File Reference +DBC Framework: dbc_decode_builder.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    @@ -69,9 +108,13 @@ Classes

    Definition in file dbc_decode_builder.h.

    + - + diff --git a/docs/html/dbc__decode__builder_8h.js b/docs/html/dbc__decode__builder_8h.js new file mode 100644 index 0000000..a7a4bc7 --- /dev/null +++ b/docs/html/dbc__decode__builder_8h.js @@ -0,0 +1,4 @@ +var dbc__decode__builder_8h = +[ + [ "DbcDecodeBuilder", "classDbcDecodeBuilder.html", "classDbcDecodeBuilder" ] +]; \ No newline at end of file diff --git a/docs/html/dbc__decode__builder_8h_source.html b/docs/html/dbc__decode__builder_8h_source.html index d502e09..f8d622d 100644 --- a/docs/html/dbc__decode__builder_8h_source.html +++ b/docs/html/dbc__decode__builder_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_decode_builder.h Source File +DBC Framework: dbc_decode_builder.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,53 +35,66 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_decode_builder.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_decode_builder.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef DBC_DECODE_BUILDER_H
    13#define DBC_DECODE_BUILDER_H
    14
    15#include "dbc_database.h"
    16#include "decode_database.h"
    -
    17
    -
    18/**
    -
    19 * @brief Converts parsed DBC data into runtime decode database.
    -
    20 */
    +
    17
    -
    22 public:
    -
    23 /**
    -
    24 * @brief Build runtime decode database.
    -
    25 * @param source Parsed DBC database.
    -
    26 * @return Runtime-ready decode database.
    -
    27 */
    +
    22 public:
    28 DecodeDatabase Build (const DbcDatabase &source) const;
    29};
    30
    @@ -85,9 +106,13 @@
    Parsed DBC content stored in a simple internal form.
    Definition: dbc_database.h:22
    Runtime decode database with fast lookup by CAN ID.
    +
    - + diff --git a/docs/html/dbc__decoder_8cpp.html b/docs/html/dbc__decoder_8cpp.html index 3606b3a..4c76fc0 100644 --- a/docs/html/dbc__decoder_8cpp.html +++ b/docs/html/dbc__decoder_8cpp.html @@ -5,10 +5,17 @@ -DBC framework: dbc_decoder.cpp File Reference +DBC Framework: dbc_decoder.cpp File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_decoder.cpp File Reference
    @@ -59,9 +98,13 @@

    Definition in file dbc_decoder.cpp.

    + - + diff --git a/docs/html/dbc__decoder_8cpp_source.html b/docs/html/dbc__decoder_8cpp_source.html index e212796..5e4921e 100644 --- a/docs/html/dbc__decoder_8cpp_source.html +++ b/docs/html/dbc__decoder_8cpp_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_decoder.cpp Source File +DBC Framework: dbc_decoder.cpp Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_decoder.cpp
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_decoder.cpp
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#include "dbc_decoder.h"
    13
    @@ -65,16 +94,16 @@
    16 bool isExtended) const {
    17 const FrameKey key (canId, isExtended);
    18 const std::unordered_map<FrameKey, std::size_t, FrameKeyHasher>::const_iterator it =
    -
    19 database.frameIndexByKey.find (key);
    +
    19 database.frameIndexByKey.find (key);
    20
    -
    21 if (it == database.frameIndexByKey.end())
    +
    21 if (it == database.frameIndexByKey.end())
    22 return nullptr;
    23
    24 const std::size_t index = it->second;
    -
    25 if (index >= database.frames.size())
    +
    25 if (index >= database.frames.size())
    26 return nullptr;
    27
    -
    28 return &database.frames[index];
    +
    28 return &database.frames[index];
    29}
    30
    @@ -88,21 +117,21 @@
    39 result.definition = definition;
    40 result.valid = true;
    41
    -
    42 for (std::size_t signalIndex = 0U; signalIndex < definition->signals.size(); ++signalIndex) {
    -
    43 const DecodeSignal &signal = definition->signals[signalIndex];
    +
    42 for (std::size_t signalIndex = 0U; signalIndex < definition->signals.size(); ++signalIndex) {
    +
    43 const DecodeSignal &signal = definition->signals[signalIndex];
    44 DecodedSignalValue decoded;
    45 std::uint64_t unsignedValue = 0U;
    46
    47 decoded.definition = &signal;
    48
    -
    49 if (!ExtractUnsigned (frame.data, signal, unsignedValue)) {
    +
    49 if (!ExtractUnsigned (frame.data, signal, unsignedValue)) {
    50 decoded.valid = false;
    -
    51 result.signals.push_back (decoded);
    +
    51 result.signals.push_back (decoded);
    52 continue;
    53 }
    54
    -
    55 if (signal.valueType == ValueType::Signed)
    -
    56 decoded.rawValue = SignExtend (unsignedValue, signal.length);
    +
    55 if (signal.valueType == ValueType::Signed)
    +
    56 decoded.rawValue = SignExtend (unsignedValue, signal.length);
    57 else
    58 decoded.rawValue = static_cast<std::int64_t> (unsignedValue);
    59
    @@ -110,25 +139,25 @@
    61 (static_cast<double> (decoded.rawValue) * signal.factor) + signal.offset;
    62 decoded.valid = true;
    63
    -
    64 result.signals.push_back (decoded);
    +
    64 result.signals.push_back (decoded);
    65 }
    66
    67 return result;
    68}
    69
    -
    70bool DbcDecoder::ExtractUnsigned (const std::vector<std::uint8_t> &data,
    +
    70bool DbcDecoder::ExtractUnsigned (const std::vector<std::uint8_t> &data,
    71 const DecodeSignal &signal,
    72 std::uint64_t &value) {
    73 if ((signal.length == 0U) || (signal.length > 64U))
    74 return false;
    75
    -
    76 if (signal.byteOrder == ByteOrder::Intel)
    -
    77 return ExtractIntel (data, signal.startBit, signal.length, value);
    +
    76 if (signal.byteOrder == ByteOrder::Intel)
    +
    77 return ExtractIntel (data, signal.startBit, signal.length, value);
    78
    -
    79 return ExtractMotorola (data, signal.startBit, signal.length, value);
    +
    79 return ExtractMotorola (data, signal.startBit, signal.length, value);
    80}
    81
    -
    82bool DbcDecoder::ExtractIntel (const std::vector<std::uint8_t> &data,
    +
    82bool DbcDecoder::ExtractIntel (const std::vector<std::uint8_t> &data,
    83 std::uint32_t startBit,
    84 std::uint32_t length,
    85 std::uint64_t &value) {
    @@ -151,7 +180,7 @@
    102 return true;
    103}
    104
    -
    105bool DbcDecoder::ExtractMotorola (const std::vector<std::uint8_t> &data,
    +
    105bool DbcDecoder::ExtractMotorola (const std::vector<std::uint8_t> &data,
    106 std::uint32_t startBit,
    107 std::uint32_t length,
    108 std::uint64_t &value) {
    @@ -190,7 +219,7 @@
    141 return true;
    142}
    143
    -
    144std::int64_t DbcDecoder::SignExtend (std::uint64_t value, std::uint32_t bitLength) {
    +
    144std::int64_t DbcDecoder::SignExtend (std::uint64_t value, std::uint32_t bitLength) {
    145 if ((bitLength == 0U) || (bitLength >= 64U))
    146 return static_cast<std::int64_t> (value);
    147
    @@ -204,20 +233,11 @@
    155
    156 return static_cast<std::int64_t> (value | (~valueMask));
    157}
    -
    static bool ExtractUnsigned(const std::vector< std::uint8_t > &data, const DecodeSignal &signal, std::uint64_t &value)
    Definition: dbc_decoder.cpp:70
    DecodedFrameValue Decode(const DecodeDatabase &database, const RawCanFrame &frame) const
    Decode one raw CAN frame.
    Definition: dbc_decoder.cpp:31
    -
    static std::int64_t SignExtend(std::uint64_t value, std::uint32_t bitLength)
    const DecodeFrame * FindFrame(const DecodeDatabase &database, std::uint32_t canId, bool isExtended) const
    Find frame definition by CAN ID.
    Definition: dbc_decoder.cpp:14
    -
    static bool ExtractIntel(const std::vector< std::uint8_t > &data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &value)
    Definition: dbc_decoder.cpp:82
    -
    static bool ExtractMotorola(const std::vector< std::uint8_t > &data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &value)
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    - -
    Runtime decode database with fast lookup by CAN ID.
    -
    std::vector< DecodeFrame > frames
    -
    std::unordered_map< FrameKey, std::size_t, FrameKeyHasher > frameIndexByKey
    Runtime-ready frame definition.
    -
    std::vector< DecodeSignal > signals
    Runtime-ready signal definition.
    @@ -228,7 +248,6 @@
    Fully decoded frame.
    Definition: dbc_decoder.h:55
    const DecodeFrame * definition
    Definition: dbc_decoder.h:56
    -
    std::vector< DecodedSignalValue > signals
    Definition: dbc_decoder.h:57
    One decoded signal value.
    Definition: dbc_decoder.h:38
    std::int64_t rawValue
    Definition: dbc_decoder.h:40
    @@ -240,9 +259,13 @@
    std::uint32_t canId
    Definition: dbc_decoder.h:24
    bool isExtended
    Definition: dbc_decoder.h:25
    +
    - + diff --git a/docs/html/dbc__decoder_8h.html b/docs/html/dbc__decoder_8h.html index 6cc42ab..c2e4e03 100644 --- a/docs/html/dbc__decoder_8h.html +++ b/docs/html/dbc__decoder_8h.html @@ -5,10 +5,17 @@ -DBC framework: dbc_decoder.h File Reference +DBC Framework: dbc_decoder.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    @@ -79,9 +118,13 @@ Classes

    Definition in file dbc_decoder.h.

    + - + diff --git a/docs/html/dbc__decoder_8h.js b/docs/html/dbc__decoder_8h.js new file mode 100644 index 0000000..b9711cc --- /dev/null +++ b/docs/html/dbc__decoder_8h.js @@ -0,0 +1,7 @@ +var dbc__decoder_8h = +[ + [ "RawCanFrame", "structRawCanFrame.html", "structRawCanFrame" ], + [ "DecodedSignalValue", "structDecodedSignalValue.html", "structDecodedSignalValue" ], + [ "DecodedFrameValue", "structDecodedFrameValue.html", "structDecodedFrameValue" ], + [ "DbcDecoder", "classDbcDecoder.html", "classDbcDecoder" ] +]; \ No newline at end of file diff --git a/docs/html/dbc__decoder_8h_source.html b/docs/html/dbc__decoder_8h_source.html index c7beeeb..f765efb 100644 --- a/docs/html/dbc__decoder_8h_source.html +++ b/docs/html/dbc__decoder_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_decoder.h Source File +DBC Framework: dbc_decoder.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_decoder.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_decoder.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef DBC_DECODER_H
    13#define DBC_DECODER_H
    14
    @@ -65,129 +94,97 @@
    16#include <cstdint>
    17
    18#include "decode_database.h"
    -
    19
    -
    20/**
    -
    21 * @brief Raw CAN frame used for runtime or trace decoding.
    -
    22 */
    +
    19
    -
    24 std::uint32_t canId; /**< Normalized CAN ID. */
    -
    25 bool isExtended; /**< true for extended frame. */
    -
    26 std::vector<std::uint8_t> data; /**< Payload bytes. */
    -
    27
    - +
    24 std::uint32_t canId;
    + +
    26 std::vector<std::uint8_t> data;
    +
    29 : canId (0U)
    30 , isExtended (false)
    31 , data() {
    32 }
    33};
    -
    34
    -
    35/**
    -
    36 * @brief One decoded signal value.
    -
    37 */
    +
    34
    -
    39 const DecodeSignal *definition; /**< Signal definition. */
    -
    40 std::int64_t rawValue; /**< Extracted raw integer value. */
    -
    41 double physicalValue; /**< Converted physical value. */
    -
    42 bool valid; /**< true if decoding succeeded. */
    -
    43
    - + +
    40 std::int64_t rawValue;
    + +
    42 bool valid;
    +
    45 : definition (nullptr)
    46 , rawValue (0)
    47 , physicalValue (0.0)
    48 , valid (false) {
    49 }
    50};
    -
    51
    -
    52/**
    -
    53 * @brief Fully decoded frame.
    -
    54 */
    +
    51
    -
    56 const DecodeFrame *definition; /**< Frame definition. */
    -
    57 std::vector<DecodedSignalValue> signals; /**< Decoded signal values. */
    -
    58 bool valid; /**< true if frame was matched. */
    -
    59
    - + +
    57 std::vector<DecodedSignalValue> signals;
    +
    58 bool valid;
    +
    61 : definition (nullptr)
    -
    62 , signals()
    +
    62 , signals()
    63 , valid (false) {
    64 }
    65};
    -
    66
    -
    67/**
    -
    68 * @brief Runtime CAN decoder using prebuilt decode database.
    -
    69 */
    +
    66
    -
    71 public:
    -
    72 /**
    -
    73 * @brief Find frame definition by CAN ID.
    -
    74 * @param database Runtime decode database.
    -
    75 * @param canId Normalized CAN ID.
    -
    76 * @param isExtended true for extended frame.
    -
    77 * @return Pointer to frame definition or nullptr.
    -
    78 */
    +
    71 public:
    79 const DecodeFrame *FindFrame (const DecodeDatabase &database,
    80 std::uint32_t canId,
    81 bool isExtended) const;
    -
    82
    -
    83 /**
    -
    84 * @brief Decode one raw CAN frame.
    -
    85 * @param database Runtime decode database.
    -
    86 * @param frame Raw CAN frame.
    -
    87 * @return Decoded frame value.
    -
    88 */
    +
    82
    90 const RawCanFrame &frame) const;
    91
    92 private:
    -
    93 static bool ExtractUnsigned (const std::vector<std::uint8_t> &data,
    +
    93 static bool ExtractUnsigned (const std::vector<std::uint8_t> &data,
    94 const DecodeSignal &signal,
    95 std::uint64_t &value);
    96
    -
    97 static bool ExtractIntel (const std::vector<std::uint8_t> &data,
    +
    97 static bool ExtractIntel (const std::vector<std::uint8_t> &data,
    98 std::uint32_t startBit,
    99 std::uint32_t length,
    100 std::uint64_t &value);
    101
    -
    102 static bool ExtractMotorola (const std::vector<std::uint8_t> &data,
    +
    102 static bool ExtractMotorola (const std::vector<std::uint8_t> &data,
    103 std::uint32_t startBit,
    104 std::uint32_t length,
    105 std::uint64_t &value);
    106
    -
    107 static std::int64_t SignExtend (std::uint64_t value, std::uint32_t bitLength);
    +
    107 static std::int64_t SignExtend (std::uint64_t value, std::uint32_t bitLength);
    108};
    109
    110#endif /* DBC_DECODER_H */
    Runtime CAN decoder using prebuilt decode database.
    Definition: dbc_decoder.h:70
    -
    static bool ExtractUnsigned(const std::vector< std::uint8_t > &data, const DecodeSignal &signal, std::uint64_t &value)
    Definition: dbc_decoder.cpp:70
    DecodedFrameValue Decode(const DecodeDatabase &database, const RawCanFrame &frame) const
    Decode one raw CAN frame.
    Definition: dbc_decoder.cpp:31
    -
    static std::int64_t SignExtend(std::uint64_t value, std::uint32_t bitLength)
    const DecodeFrame * FindFrame(const DecodeDatabase &database, std::uint32_t canId, bool isExtended) const
    Find frame definition by CAN ID.
    Definition: dbc_decoder.cpp:14
    -
    static bool ExtractIntel(const std::vector< std::uint8_t > &data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &value)
    Definition: dbc_decoder.cpp:82
    -
    static bool ExtractMotorola(const std::vector< std::uint8_t > &data, std::uint32_t startBit, std::uint32_t length, std::uint64_t &value)
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    Runtime decode database with fast lookup by CAN ID.
    Runtime-ready frame definition.
    Runtime-ready signal definition.
    Fully decoded frame.
    Definition: dbc_decoder.h:55
    -
    const DecodeFrame * definition
    Definition: dbc_decoder.h:56
    -
    std::vector< DecodedSignalValue > signals
    Definition: dbc_decoder.h:57
    One decoded signal value.
    Definition: dbc_decoder.h:38
    -
    std::int64_t rawValue
    Definition: dbc_decoder.h:40
    const DecodeSignal * definition
    Definition: dbc_decoder.h:39
    Raw CAN frame used for runtime or trace decoding.
    Definition: dbc_decoder.h:23
    std::vector< std::uint8_t > data
    Definition: dbc_decoder.h:26
    -
    std::uint32_t canId
    Definition: dbc_decoder.h:24
    bool isExtended
    Definition: dbc_decoder.h:25
    +
    - + diff --git a/docs/html/dbc__parser_8cpp.html b/docs/html/dbc__parser_8cpp.html index 167e655..f943b59 100644 --- a/docs/html/dbc__parser_8cpp.html +++ b/docs/html/dbc__parser_8cpp.html @@ -5,10 +5,17 @@ -DBC framework: dbc_parser.cpp File Reference +DBC Framework: dbc_parser.cpp File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,26 +35,54 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    -
    dbc_parser.cpp File Reference
    @@ -60,27 +96,19 @@ #include <cctype>

    Go to the source code of this file.

    - - - - -

    -Namespaces

    namespace  anonymous_namespace{dbc_parser.cpp}
     
    - - - - -

    -Functions

    std::string anonymous_namespace{dbc_parser.cpp}::TrimText (const std::string &text)
     Remove leading and trailing spaces. More...
     

    Detailed Description

    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)

    Licensed under the MIT License. See LICENSE file in the project root for full license text.

    Definition in file dbc_parser.cpp.

    + - + diff --git a/docs/html/dbc__parser_8cpp_source.html b/docs/html/dbc__parser_8cpp_source.html index 2f502d5..b98cb34 100644 --- a/docs/html/dbc__parser_8cpp_source.html +++ b/docs/html/dbc__parser_8cpp_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_parser.cpp Source File +DBC Framework: dbc_parser.cpp Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_parser.cpp
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_parser.cpp
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#include "dbc_parser.h"
    13
    14#include <fstream>
    @@ -65,13 +94,8 @@
    16#include <stdexcept>
    17#include <cctype>
    18
    -
    19namespace {
    -
    20 /**
    -
    21 * @brief Remove leading and trailing spaces.
    -
    22 * @param text Input text.
    -
    23 * @return Trimmed text.
    -
    24 */
    -
    25 std::string TrimText (const std::string &text) {
    +
    19namespace {
    +
    25 std::string TrimText (const std::string &text) {
    26 std::string::size_type begin = 0U;
    27 while ((begin < text.size()) &&
    28 std::isspace (static_cast<unsigned char> (text[begin])))
    @@ -96,50 +120,50 @@
    47
    48 std::string line;
    49 while (std::getline (input, line)) {
    -
    50 line = Trim (line);
    +
    50 line = Trim (line);
    51 if (line.empty())
    52 continue;
    53
    -
    54 if (IsFrameLine (line)) {
    -
    55 FrameInfo frame = ParseFrameLine (line);
    +
    54 if (IsFrameLine (line)) {
    +
    55 FrameInfo frame = ParseFrameLine (line);
    56 database.frames.push_back (frame);
    57 currentFrame = &database.frames.back();
    -
    58 } else if (IsSignalLine (line)) {
    +
    58 } else if (IsSignalLine (line)) {
    59 if (currentFrame == nullptr)
    60 throw std::runtime_error ("Signal found before any frame definition.");
    61
    -
    62 SignalInfo signal = ParseSignalLine (line);
    -
    63 currentFrame->signals.push_back (signal);
    -
    64 } else if (IsCommentLine (line))
    -
    65 ParseCommentLine (line, database);
    +
    62 SignalInfo signal = ParseSignalLine (line);
    +
    63 currentFrame->signals.push_back (signal);
    +
    64 } else if (IsCommentLine (line))
    +
    65 ParseCommentLine (line, database);
    66 }
    67
    68 return database;
    69}
    70
    -
    71bool DbcParser::IsFrameLine (const std::string &line) {
    +
    71bool DbcParser::IsFrameLine (const std::string &line) {
    72 return (line.size() >= 4U) && (line.compare (0U, 4U, "BO_ ") == 0);
    73}
    74
    -
    75bool DbcParser::IsSignalLine (const std::string &line) {
    +
    75bool DbcParser::IsSignalLine (const std::string &line) {
    76 return (line.size() >= 4U) && (line.compare (0U, 4U, "SG_ ") == 0);
    77}
    78
    -
    79bool DbcParser::IsCommentLine (const std::string &line) {
    +
    79bool DbcParser::IsCommentLine (const std::string &line) {
    80 return (line.size() >= 4U) && (line.compare (0U, 4U, "CM_ ") == 0);
    81}
    82
    -
    83std::string DbcParser::Trim (const std::string &text) {
    -
    84 return TrimText (text);
    +
    83std::string DbcParser::Trim (const std::string &text) {
    +
    84 return TrimText (text);
    85}
    86
    -
    87std::vector<std::string> DbcParser::SplitReceivers (const std::string &text) {
    +
    87std::vector<std::string> DbcParser::SplitReceivers (const std::string &text) {
    88 std::vector<std::string> receivers;
    89 std::string token;
    90 std::istringstream stream (text);
    91
    92 while (std::getline (stream, token, ',')) {
    -
    93 token = TrimText (token);
    +
    93 token = TrimText (token);
    94 if (!token.empty())
    95 receivers.push_back (token);
    96 }
    @@ -147,7 +171,7 @@
    98 return receivers;
    99}
    100
    -
    101void DbcParser::NormalizeCanId (std::uint32_t rawCanId,
    +
    101void DbcParser::NormalizeCanId (std::uint32_t rawCanId,
    102 std::uint32_t &normalizedCanId,
    103 bool &isExtended) {
    104 /*
    @@ -164,7 +188,7 @@
    115 }
    116}
    117
    -
    118std::uint32_t DbcParser::TryExtractPgn (std::uint32_t canId, bool isExtended, bool &hasPgn) {
    +
    118std::uint32_t DbcParser::TryExtractPgn (std::uint32_t canId, bool isExtended, bool &hasPgn) {
    119 hasPgn = false;
    120
    121 if (!isExtended)
    @@ -188,7 +212,7 @@
    139 return pgn;
    140}
    141
    -
    142FrameInfo DbcParser::ParseFrameLine (const std::string &line) {
    +
    142FrameInfo DbcParser::ParseFrameLine (const std::string &line) {
    143 /*
    144 * Example:
    145 * BO_ 256 EngineData: 8 EEC1
    @@ -204,7 +228,7 @@
    155 throw std::runtime_error ("Invalid frame line: " + line);
    156
    157 stream >> rawCanId;
    -
    158 NormalizeCanId (rawCanId, frame.canId, frame.isExtended);
    +
    158 NormalizeCanId (rawCanId, frame.canId, frame.isExtended);
    159
    160 stream >> token;
    161 if (token.empty())
    @@ -222,12 +246,12 @@
    173 }
    174
    175 stream >> frame.transmitter;
    -
    176 frame.pgn = TryExtractPgn (frame.canId, frame.isExtended, frame.hasPgn);
    +
    176 frame.pgn = TryExtractPgn (frame.canId, frame.isExtended, frame.hasPgn);
    177
    178 return frame;
    179}
    180
    -
    181SignalInfo DbcParser::ParseSignalLine (const std::string &line) {
    +
    181SignalInfo DbcParser::ParseSignalLine (const std::string &line) {
    182 /*
    183 * Example:
    184 * SG_ EngineSpeed : 0|16@1+ (0.125,0) [0|8000] "rpm" ECU1,ECU2
    @@ -235,7 +259,7 @@
    186
    187 SignalInfo signal;
    188
    -
    189 std::string work = TrimText (line);
    +
    189 std::string work = TrimText (line);
    190 if (work.compare (0U, 4U, "SG_ ") != 0)
    191 throw std::runtime_error ("Invalid signal line: " + line);
    192
    @@ -245,8 +269,8 @@
    196 if (colonPos == std::string::npos)
    197 throw std::runtime_error ("Signal line missing ':' : " + line);
    198
    -
    199 signal.name = TrimText (work.substr (0U, colonPos));
    -
    200 std::string rest = TrimText (work.substr (colonPos + 1U));
    +
    199 signal.name = TrimText (work.substr (0U, colonPos));
    +
    200 std::string rest = TrimText (work.substr (colonPos + 1U));
    201
    202 const std::string::size_type pipePos = rest.find ('|');
    203 const std::string::size_type atPos = rest.find ('@');
    @@ -274,11 +298,11 @@
    225 throw std::runtime_error ("Unsupported signal syntax: " + line);
    226
    227 signal.startBit = static_cast<std::uint32_t> (
    -
    228 std::stoul (TrimText (rest.substr (0U, pipePos)))
    +
    228 std::stoul (TrimText (rest.substr (0U, pipePos)))
    229 );
    230
    231 signal.length = static_cast<std::uint32_t> (
    -
    232 std::stoul (TrimText (rest.substr (pipePos + 1U, atPos - pipePos - 1U)))
    +
    232 std::stoul (TrimText (rest.substr (pipePos + 1U, atPos - pipePos - 1U)))
    233 );
    234
    235 {
    @@ -295,32 +319,32 @@
    246 }
    247
    248 signal.factor = std::stod (
    -
    249 TrimText (rest.substr (factorBegin + 1U, factorComma - factorBegin - 1U))
    +
    249 TrimText (rest.substr (factorBegin + 1U, factorComma - factorBegin - 1U))
    250 );
    251
    252 signal.offset = std::stod (
    -
    253 TrimText (rest.substr (factorComma + 1U, factorEnd - factorComma - 1U))
    +
    253 TrimText (rest.substr (factorComma + 1U, factorEnd - factorComma - 1U))
    254 );
    255
    256 signal.minimum = std::stod (
    -
    257 TrimText (rest.substr (rangeBegin + 1U, rangeSep - rangeBegin - 1U))
    +
    257 TrimText (rest.substr (rangeBegin + 1U, rangeSep - rangeBegin - 1U))
    258 );
    259
    260 signal.maximum = std::stod (
    -
    261 TrimText (rest.substr (rangeSep + 1U, rangeEnd - rangeSep - 1U))
    +
    261 TrimText (rest.substr (rangeSep + 1U, rangeEnd - rangeSep - 1U))
    262 );
    263
    264 signal.unit = rest.substr (unitBegin + 1U, unitEnd - unitBegin - 1U);
    265
    266 {
    -
    267 const std::string receiversText = TrimText (rest.substr (unitEnd + 1U));
    -
    268 signal.receivers = SplitReceivers (receiversText);
    +
    267 const std::string receiversText = TrimText (rest.substr (unitEnd + 1U));
    +
    268 signal.receivers = SplitReceivers (receiversText);
    269 }
    270
    271 return signal;
    272}
    273
    -
    274void DbcParser::ParseCommentLine (const std::string &line, DbcDatabase &database) {
    +
    274void DbcParser::ParseCommentLine (const std::string &line, DbcDatabase &database) {
    275 /*
    276 * Examples:
    277 * CM_ BO_ 256 "Frame comment";
    @@ -342,7 +366,7 @@
    293 bool isExtended = false;
    294
    295 stream >> rawCanId;
    -
    296 NormalizeCanId (rawCanId, canId, isExtended);
    +
    296 NormalizeCanId (rawCanId, canId, isExtended);
    297
    298 const std::string::size_type quoteBegin = line.find ('"');
    299 const std::string::size_type quoteEnd = line.rfind ('"');
    @@ -352,7 +376,7 @@
    303 (quoteEnd <= quoteBegin))
    304 return;
    305
    -
    306 FrameInfo *frame = FindFrameById (database, canId, isExtended);
    +
    306 FrameInfo *frame = FindFrameById (database, canId, isExtended);
    307 if (frame != nullptr)
    308 frame->comment = line.substr (quoteBegin + 1U, quoteEnd - quoteBegin - 1U);
    309 } else if (token == "SG_") {
    @@ -364,7 +388,7 @@
    315 stream >> rawCanId;
    316 stream >> signalName;
    317
    -
    318 NormalizeCanId (rawCanId, canId, isExtended);
    +
    318 NormalizeCanId (rawCanId, canId, isExtended);
    319
    320 const std::string::size_type quoteBegin = line.find ('"');
    321 const std::string::size_type quoteEnd = line.rfind ('"');
    @@ -374,16 +398,16 @@
    325 (quoteEnd <= quoteBegin))
    326 return;
    327
    -
    328 FrameInfo *frame = FindFrameById (database, canId, isExtended);
    +
    328 FrameInfo *frame = FindFrameById (database, canId, isExtended);
    329 if (frame != nullptr) {
    -
    330 SignalInfo *signal = FindSignalByName (*frame, signalName);
    +
    330 SignalInfo *signal = FindSignalByName (*frame, signalName);
    331 if (signal != nullptr)
    332 signal->comment = line.substr (quoteBegin + 1U, quoteEnd - quoteBegin - 1U);
    333 }
    334 }
    335}
    336
    - +
    337FrameInfo *DbcParser::FindFrameById (DbcDatabase &database,
    338 std::uint32_t canId,
    339 bool isExtended) {
    340 for (std::size_t index = 0U; index < database.frames.size(); ++index) {
    @@ -395,36 +419,22 @@
    346 return nullptr;
    347}
    348
    -
    349SignalInfo *DbcParser::FindSignalByName (FrameInfo &frame, const std::string &signalName) {
    -
    350 for (std::size_t index = 0U; index < frame.signals.size(); ++index) {
    -
    351 if (frame.signals[index].name == signalName)
    -
    352 return &frame.signals[index];
    +
    349SignalInfo *DbcParser::FindSignalByName (FrameInfo &frame, const std::string &signalName) {
    +
    350 for (std::size_t index = 0U; index < frame.signals.size(); ++index) {
    +
    351 if (frame.signals[index].name == signalName)
    +
    352 return &frame.signals[index];
    353 }
    354
    355 return nullptr;
    356}
    -
    static std::vector< std::string > SplitReceivers(const std::string &text)
    Definition: dbc_parser.cpp:87
    -
    static std::string Trim(const std::string &text)
    Definition: dbc_parser.cpp:83
    -
    static SignalInfo ParseSignalLine(const std::string &line)
    Definition: dbc_parser.cpp:181
    -
    static FrameInfo ParseFrameLine(const std::string &line)
    Definition: dbc_parser.cpp:142
    -
    static std::uint32_t TryExtractPgn(std::uint32_t canId, bool isExtended, bool &hasPgn)
    Definition: dbc_parser.cpp:118
    -
    static void NormalizeCanId(std::uint32_t rawCanId, std::uint32_t &normalizedCanId, bool &isExtended)
    Definition: dbc_parser.cpp:101
    -
    static void ParseCommentLine(const std::string &line, DbcDatabase &database)
    Definition: dbc_parser.cpp:274
    -
    static FrameInfo * FindFrameById(DbcDatabase &database, std::uint32_t canId, bool isExtended)
    Definition: dbc_parser.cpp:337
    -
    static SignalInfo * FindSignalByName(FrameInfo &frame, const std::string &signalName)
    Definition: dbc_parser.cpp:349
    -
    static bool IsSignalLine(const std::string &line)
    Definition: dbc_parser.cpp:75
    -
    static bool IsFrameLine(const std::string &line)
    Definition: dbc_parser.cpp:71
    -
    static bool IsCommentLine(const std::string &line)
    Definition: dbc_parser.cpp:79
    DbcDatabase ParseFile(const std::string &filePath) const
    Parse DBC file.
    Definition: dbc_parser.cpp:40
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    -
    std::string TrimText(const std::string &text)
    Remove leading and trailing spaces.
    Definition: dbc_parser.cpp:25
    Parsed DBC content stored in a simple internal form.
    Definition: dbc_database.h:22
    std::vector< FrameInfo > frames
    Definition: dbc_database.h:23
    Describes one CAN frame from a DBC file.
    Definition: frame_info.h:24
    bool isExtended
    Definition: frame_info.h:27
    bool hasPgn
    Definition: frame_info.h:29
    std::string transmitter
    Definition: frame_info.h:31
    -
    std::vector< SignalInfo > signals
    Definition: frame_info.h:33
    std::uint8_t dlc
    Definition: frame_info.h:30
    std::string name
    Definition: frame_info.h:25
    std::string comment
    Definition: frame_info.h:32
    @@ -444,9 +454,13 @@
    double factor
    Definition: signal_info.h:28
    bool isLittleEndian
    Definition: signal_info.h:26
    +
    - + diff --git a/docs/html/dbc__parser_8h.html b/docs/html/dbc__parser_8h.html index 369cbe6..9e37fcc 100644 --- a/docs/html/dbc__parser_8h.html +++ b/docs/html/dbc__parser_8h.html @@ -5,10 +5,17 @@ -DBC framework: dbc_parser.h File Reference +DBC Framework: dbc_parser.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    @@ -71,9 +110,13 @@ Classes

    Definition in file dbc_parser.h.

    + - + diff --git a/docs/html/dbc__parser_8h.js b/docs/html/dbc__parser_8h.js new file mode 100644 index 0000000..1eb44b1 --- /dev/null +++ b/docs/html/dbc__parser_8h.js @@ -0,0 +1,4 @@ +var dbc__parser_8h = +[ + [ "DbcParser", "classDbcParser.html", "classDbcParser" ] +]; \ No newline at end of file diff --git a/docs/html/dbc__parser_8h_source.html b/docs/html/dbc__parser_8h_source.html index 63dfc7e..5792d31 100644 --- a/docs/html/dbc__parser_8h_source.html +++ b/docs/html/dbc__parser_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_parser.h Source File +DBC Framework: dbc_parser.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_parser.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_parser.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef DBC_PARSER_H
    13#define DBC_PARSER_H
    14
    @@ -66,78 +95,50 @@
    17#include <cstdint>
    18
    19#include "dbc_database.h"
    -
    20
    -
    21/**
    -
    22 * @brief Minimal DBC parser.
    -
    23 *
    -
    24 * Supports:
    -
    25 * - BO_
    -
    26 * - SG_
    -
    27 * - CM_ BO_
    -
    28 * - CM_ SG_
    -
    29 *
    -
    30 * Ignores:
    -
    31 * - attributes
    -
    32 * - multiplexing
    -
    33 * - value tables
    -
    34 */
    +
    20
    35class DbcParser {
    -
    36 public:
    -
    37 /**
    -
    38 * @brief Parse DBC file.
    -
    39 * @param filePath Path to input file.
    -
    40 * @return Parsed database.
    -
    41 * @throws std::runtime_error on file or parse errors.
    -
    42 */
    +
    36 public:
    43 DbcDatabase ParseFile (const std::string &filePath) const;
    44
    45 private:
    -
    46 static bool IsFrameLine (const std::string &line);
    -
    47 static bool IsSignalLine (const std::string &line);
    -
    48 static bool IsCommentLine (const std::string &line);
    -
    49 static std::string Trim (const std::string &text);
    -
    50 static std::vector<std::string> SplitReceivers (const std::string &text);
    -
    51 static std::uint32_t TryExtractPgn (std::uint32_t canId, bool isExtended, bool &hasPgn);
    +
    46 static bool IsFrameLine (const std::string &line);
    +
    47 static bool IsSignalLine (const std::string &line);
    +
    48 static bool IsCommentLine (const std::string &line);
    +
    49 static std::string Trim (const std::string &text);
    +
    50 static std::vector<std::string> SplitReceivers (const std::string &text);
    +
    51 static std::uint32_t TryExtractPgn (std::uint32_t canId, bool isExtended, bool &hasPgn);
    52
    -
    53 static void NormalizeCanId (std::uint32_t rawCanId,
    +
    53 static void NormalizeCanId (std::uint32_t rawCanId,
    54 std::uint32_t &normalizedCanId,
    55 bool &isExtended);
    56
    -
    57 static FrameInfo ParseFrameLine (const std::string &line);
    -
    58 static SignalInfo ParseSignalLine (const std::string &line);
    +
    57 static FrameInfo ParseFrameLine (const std::string &line);
    +
    58 static SignalInfo ParseSignalLine (const std::string &line);
    59
    -
    60 static void ParseCommentLine (const std::string &line, DbcDatabase &database);
    +
    60 static void ParseCommentLine (const std::string &line, DbcDatabase &database);
    61
    -
    62 static FrameInfo *FindFrameById (DbcDatabase &database,
    +
    62 static FrameInfo *FindFrameById (DbcDatabase &database,
    63 std::uint32_t canId,
    64 bool isExtended);
    65
    -
    66 static SignalInfo *FindSignalByName (FrameInfo &frame, const std::string &signalName);
    +
    66 static SignalInfo *FindSignalByName (FrameInfo &frame, const std::string &signalName);
    67};
    68
    69#endif /* DBC_PARSER_H */
    Minimal DBC parser.
    Definition: dbc_parser.h:35
    -
    static std::vector< std::string > SplitReceivers(const std::string &text)
    Definition: dbc_parser.cpp:87
    -
    static std::string Trim(const std::string &text)
    Definition: dbc_parser.cpp:83
    -
    static SignalInfo ParseSignalLine(const std::string &line)
    Definition: dbc_parser.cpp:181
    -
    static FrameInfo ParseFrameLine(const std::string &line)
    Definition: dbc_parser.cpp:142
    -
    static std::uint32_t TryExtractPgn(std::uint32_t canId, bool isExtended, bool &hasPgn)
    Definition: dbc_parser.cpp:118
    -
    static void NormalizeCanId(std::uint32_t rawCanId, std::uint32_t &normalizedCanId, bool &isExtended)
    Definition: dbc_parser.cpp:101
    -
    static void ParseCommentLine(const std::string &line, DbcDatabase &database)
    Definition: dbc_parser.cpp:274
    -
    static FrameInfo * FindFrameById(DbcDatabase &database, std::uint32_t canId, bool isExtended)
    Definition: dbc_parser.cpp:337
    -
    static SignalInfo * FindSignalByName(FrameInfo &frame, const std::string &signalName)
    Definition: dbc_parser.cpp:349
    -
    static bool IsSignalLine(const std::string &line)
    Definition: dbc_parser.cpp:75
    -
    static bool IsFrameLine(const std::string &line)
    Definition: dbc_parser.cpp:71
    -
    static bool IsCommentLine(const std::string &line)
    Definition: dbc_parser.cpp:79
    DbcDatabase ParseFile(const std::string &filePath) const
    Parse DBC file.
    Definition: dbc_parser.cpp:40
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    Parsed DBC content stored in a simple internal form.
    Definition: dbc_database.h:22
    Describes one CAN frame from a DBC file.
    Definition: frame_info.h:24
    Describes one signal inside a DBC frame.
    Definition: signal_info.h:22
    +
    - + diff --git a/docs/html/dbc__tree__builder_8cpp.html b/docs/html/dbc__tree__builder_8cpp.html index 0427eec..bd70981 100644 --- a/docs/html/dbc__tree__builder_8cpp.html +++ b/docs/html/dbc__tree__builder_8cpp.html @@ -5,10 +5,17 @@ -DBC framework: dbc_tree_builder.cpp File Reference +DBC Framework: dbc_tree_builder.cpp File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_tree_builder.cpp File Reference
    @@ -59,9 +98,13 @@

    Definition in file dbc_tree_builder.cpp.

    + - + diff --git a/docs/html/dbc__tree__builder_8cpp_source.html b/docs/html/dbc__tree__builder_8cpp_source.html index c5f65a8..577390b 100644 --- a/docs/html/dbc__tree__builder_8cpp_source.html +++ b/docs/html/dbc__tree__builder_8cpp_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_tree_builder.cpp Source File +DBC Framework: dbc_tree_builder.cpp Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_tree_builder.cpp
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_tree_builder.cpp
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#include "dbc_tree_builder.h"
    13
    14std::unique_ptr<TreeNode> DbcTreeBuilder::Build (const DbcDatabase &database) const {
    @@ -67,8 +96,8 @@
    18 const FrameInfo &frame = database.frames[frameIndex];
    19 std::unique_ptr<TreeNode> frameNode (new TreeNode (frame));
    20
    -
    21 for (std::size_t signalIndex = 0U; signalIndex < frame.signals.size(); ++signalIndex) {
    -
    22 const SignalInfo &signal = frame.signals[signalIndex];
    +
    21 for (std::size_t signalIndex = 0U; signalIndex < frame.signals.size(); ++signalIndex) {
    +
    22 const SignalInfo &signal = frame.signals[signalIndex];
    23 std::unique_ptr<TreeNode> signalNode (new TreeNode (signal));
    24 frameNode->AddChild (std::move (signalNode));
    25 }
    @@ -84,12 +113,15 @@
    Parsed DBC content stored in a simple internal form.
    Definition: dbc_database.h:22
    std::vector< FrameInfo > frames
    Definition: dbc_database.h:23
    Describes one CAN frame from a DBC file.
    Definition: frame_info.h:24
    -
    std::vector< SignalInfo > signals
    Definition: frame_info.h:33
    Describes one signal inside a DBC frame.
    Definition: signal_info.h:22
    +
    - + diff --git a/docs/html/dbc__tree__builder_8h.html b/docs/html/dbc__tree__builder_8h.html index ccbfb85..de86569 100644 --- a/docs/html/dbc__tree__builder_8h.html +++ b/docs/html/dbc__tree__builder_8h.html @@ -5,10 +5,17 @@ -DBC framework: dbc_tree_builder.h File Reference +DBC Framework: dbc_tree_builder.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    @@ -70,9 +109,13 @@ Classes

    Definition in file dbc_tree_builder.h.

    + - + diff --git a/docs/html/dbc__tree__builder_8h.js b/docs/html/dbc__tree__builder_8h.js new file mode 100644 index 0000000..7cf0dbb --- /dev/null +++ b/docs/html/dbc__tree__builder_8h.js @@ -0,0 +1,4 @@ +var dbc__tree__builder_8h = +[ + [ "DbcTreeBuilder", "classDbcTreeBuilder.html", "classDbcTreeBuilder" ] +]; \ No newline at end of file diff --git a/docs/html/dbc__tree__builder_8h_source.html b/docs/html/dbc__tree__builder_8h_source.html index 47ce76a..b13e3fc 100644 --- a/docs/html/dbc__tree__builder_8h_source.html +++ b/docs/html/dbc__tree__builder_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: dbc_tree_builder.h Source File +DBC Framework: dbc_tree_builder.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    dbc_tree_builder.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file dbc_tree_builder.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef DBC_TREE_BUILDER_H
    13#define DBC_TREE_BUILDER_H
    14
    @@ -65,17 +94,9 @@
    16
    17#include "dbc_database.h"
    18#include "tree_node.h"
    -
    19
    -
    20/**
    -
    21 * @brief Builds a simple tree from parsed DBC database.
    -
    22 */
    +
    19
    -
    24 public:
    -
    25 /**
    -
    26 * @brief Build tree representation of parsed DBC data.
    -
    27 * @param database Parsed database.
    -
    28 * @return Root node of the tree.
    -
    29 */
    +
    24 public:
    30 std::unique_ptr<TreeNode> Build (const DbcDatabase &database) const;
    31};
    32
    @@ -86,9 +107,13 @@
    Parsed DBC content stored in a simple internal form.
    Definition: dbc_database.h:22
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    +
    - + diff --git a/docs/html/decode__database_8h.html b/docs/html/decode__database_8h.html index 406c715..189e2b9 100644 --- a/docs/html/decode__database_8h.html +++ b/docs/html/decode__database_8h.html @@ -5,10 +5,17 @@ -DBC framework: decode_database.h File Reference +DBC Framework: decode_database.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    Classes | @@ -80,13 +119,13 @@ Classes - - @@ -118,10 +157,6 @@ Enumerations

    Signal byte order used for runtime decoding.

    -

    Enumerations

    enum class  ByteOrder { Intel -, Motorola +
    enum class  ByteOrder { Intel +, Motorola }
     Signal byte order used for runtime decoding. More...
     
    enum class  ValueType { Unsigned -, Signed +
    enum class  ValueType { Unsigned +, Signed }
     Signal numeric type. More...
     
    - - -
    Enumerator
    Intel 
    Motorola 

    Definition at line 23 of file decode_database.h.

    @@ -148,19 +183,19 @@ Enumerations

    Signal numeric type.

    - - - -
    Enumerator
    Unsigned 
    Signed 

    Definition at line 31 of file decode_database.h.

    + - + diff --git a/docs/html/decode__database_8h.js b/docs/html/decode__database_8h.js new file mode 100644 index 0000000..5fce961 --- /dev/null +++ b/docs/html/decode__database_8h.js @@ -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 ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/decode__database_8h_source.html b/docs/html/decode__database_8h_source.html index b6fdf4a..be86652 100644 --- a/docs/html/decode__database_8h_source.html +++ b/docs/html/decode__database_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: decode_database.h Source File +DBC Framework: decode_database.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    decode_database.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file decode_database.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef DECODE_DATABASE_H
    13#define DECODE_DATABASE_H
    14
    @@ -65,46 +94,36 @@
    16#include <vector>
    17#include <unordered_map>
    18#include <cstdint>
    -
    19
    -
    20/**
    -
    21 * @brief Signal byte order used for runtime decoding.
    -
    22 */
    +
    19
    23enum class ByteOrder {
    -
    24 Intel,
    - +
    24 Intel,
    +
    25 Motorola
    26};
    -
    27
    -
    28/**
    -
    29 * @brief Signal numeric type.
    -
    30 */
    +
    27
    31enum class ValueType {
    - -
    33 Signed
    +
    32 Unsigned,
    +
    33 Signed
    34};
    -
    35
    -
    36/**
    -
    37 * @brief Runtime-ready signal definition.
    -
    38 */
    +
    35
    -
    40 std::string name; /**< Signal name. */
    -
    41 std::uint32_t startBit; /**< DBC start bit. */
    -
    42 std::uint32_t length; /**< Signal length in bits. */
    -
    43 ByteOrder byteOrder; /**< Intel or Motorola. */
    -
    44 ValueType valueType; /**< Signed or unsigned. */
    -
    45 double factor; /**< Scaling factor. */
    -
    46 double offset; /**< Physical offset. */
    -
    47 double minimum; /**< Minimum physical value. */
    -
    48 double maximum; /**< Maximum physical value. */
    -
    49 std::string unit; /**< Physical unit. */
    -
    50 std::vector<std::string> receivers; /**< Receivers. */
    -
    51 std::string comment; /**< Comment. */
    -
    52
    - +
    40 std::string name;
    +
    41 std::uint32_t startBit;
    +
    42 std::uint32_t length;
    + + +
    45 double factor;
    +
    46 double offset;
    +
    47 double minimum;
    +
    48 double maximum;
    +
    49 std::string unit;
    +
    50 std::vector<std::string> receivers;
    +
    51 std::string comment;
    +
    54 : name()
    55 , startBit (0U)
    56 , length (0U)
    - - +
    57 , byteOrder (ByteOrder::Intel)
    +
    58 , valueType (ValueType::Unsigned)
    59 , factor (1.0)
    60 , offset (0.0)
    61 , minimum (0.0)
    @@ -114,22 +133,18 @@
    65 , comment() {
    66 }
    67};
    -
    68
    -
    69/**
    -
    70 * @brief Runtime-ready frame definition.
    -
    71 */
    +
    68
    -
    73 std::string name; /**< Frame name. */
    -
    74 std::uint32_t canId; /**< Normalized CAN ID. */
    -
    75 bool isExtended; /**< true for extended frame. */
    -
    76 std::uint8_t dlc; /**< Payload length. */
    -
    77 std::uint32_t pgn; /**< PGN if available. */
    -
    78 bool hasPgn; /**< true if PGN is valid. */
    -
    79 std::string transmitter; /**< Transmitter ECU. */
    -
    80 std::string comment; /**< Frame comment. */
    -
    81 std::vector<DecodeSignal> signals; /**< Signal definitions. */
    -
    82
    - +
    73 std::string name;
    +
    74 std::uint32_t canId;
    + +
    76 std::uint8_t dlc;
    +
    77 std::uint32_t pgn;
    +
    78 bool hasPgn;
    +
    79 std::string transmitter;
    +
    80 std::string comment;
    +
    81 std::vector<DecodeSignal> signals;
    +
    84 : name()
    85 , canId (0U)
    86 , isExtended (false)
    @@ -138,72 +153,55 @@
    89 , hasPgn (false)
    90 , transmitter()
    91 , comment()
    -
    92 , signals() {
    +
    92 , signals() {
    93 }
    94};
    -
    95
    -
    96/**
    -
    97 * @brief Key for fast frame lookup.
    -
    98 */
    +
    95
    99struct FrameKey {
    -
    100 std::uint32_t canId;
    - +
    100 std::uint32_t canId;
    +
    101 bool isExtended;
    102
    - -
    104 : canId (0U)
    -
    105 , isExtended (false) {
    +
    103 FrameKey()
    +
    104 : canId (0U)
    +
    105 , isExtended (false) {
    106 }
    107
    -
    108 FrameKey (std::uint32_t id, bool extended)
    -
    109 : canId (id)
    -
    110 , isExtended (extended) {
    +
    108 FrameKey (std::uint32_t id, bool extended)
    +
    109 : canId (id)
    +
    110 , isExtended (extended) {
    111 }
    112
    -
    113 bool operator== (const FrameKey &other) const {
    -
    114 return (canId == other.canId) && (isExtended == other.isExtended);
    +
    113 bool operator== (const FrameKey &other) const {
    +
    114 return (canId == other.canId) && (isExtended == other.isExtended);
    115 }
    116};
    -
    117
    -
    118/**
    -
    119 * @brief Hasher for frame key.
    -
    120 */
    +
    117
    -
    122 std::size_t operator() (const FrameKey &key) const {
    -
    123 const std::size_t a = static_cast<std::size_t> (key.canId);
    -
    124 const std::size_t b = key.isExtended ? 1U : 0U;
    +
    122 std::size_t operator() (const FrameKey &key) const {
    +
    123 const std::size_t a = static_cast<std::size_t> (key.canId);
    +
    124 const std::size_t b = key.isExtended ? 1U : 0U;
    125 return (a * 1315423911U) ^ b;
    126 }
    127};
    -
    128
    -
    129/**
    -
    130 * @brief Runtime decode database with fast lookup by CAN ID.
    -
    131 */
    +
    128
    -
    133 std::vector<DecodeFrame> frames;
    -
    134 std::unordered_map<FrameKey, std::size_t, FrameKeyHasher> frameIndexByKey;
    +
    133 std::vector<DecodeFrame> frames;
    +
    134 std::unordered_map<FrameKey, std::size_t, FrameKeyHasher> frameIndexByKey;
    135};
    136
    137#endif /* DECODE_DATABASE_H */
    ByteOrder
    Signal byte order used for runtime decoding.
    - -
    ValueType
    Signal numeric type.
    - -
    Runtime decode database with fast lookup by CAN ID.
    -
    std::vector< DecodeFrame > frames
    -
    std::unordered_map< FrameKey, std::size_t, FrameKeyHasher > frameIndexByKey
    Runtime-ready frame definition.
    std::uint32_t pgn
    std::string comment
    -
    std::vector< DecodeSignal > signals
    std::uint8_t dlc
    std::uint32_t canId
    std::string name
    std::string transmitter
    -
    Runtime-ready signal definition.
    std::string unit
    @@ -211,7 +209,6 @@
    std::string name
    -
    ValueType valueType
    std::uint32_t startBit
    std::vector< std::string > receivers
    @@ -219,17 +216,15 @@
    std::uint32_t length
    std::string comment
    Hasher for frame key.
    -
    std::size_t operator()(const FrameKey &key) const
    Key for fast frame lookup.
    -
    std::uint32_t canId
    - -
    FrameKey(std::uint32_t id, bool extended)
    - -
    bool operator==(const FrameKey &other) const
    +
    - + diff --git a/docs/html/files.html b/docs/html/files.html index 6b966c3..dbb765c 100644 --- a/docs/html/files.html +++ b/docs/html/files.html @@ -5,10 +5,17 @@ -DBC framework: File List +DBC Framework: File List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,27 +35,58 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    File List
    -
    Here is a list of all files with brief descriptions:
    +
    Here is a list of all documented files with brief descriptions:
    @@ -67,9 +106,12 @@
     dbc_database.hCreated: 2026-03-13 Author: Deeaitch (Dim. Himro)
     dbc_decode_builder.cppCreated: 2026-03-13 Author: Deeaitch (Dim. Himro)
    +
    - + diff --git a/docs/html/files_dup.js b/docs/html/files_dup.js new file mode 100644 index 0000000..8384f1b --- /dev/null +++ b/docs/html/files_dup.js @@ -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" ] +]; \ No newline at end of file diff --git a/docs/html/frame__info_8h.html b/docs/html/frame__info_8h.html index 23f2efc..2151798 100644 --- a/docs/html/frame__info_8h.html +++ b/docs/html/frame__info_8h.html @@ -5,10 +5,17 @@ -DBC framework: frame_info.h File Reference +DBC Framework: frame_info.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    @@ -71,9 +110,13 @@ Classes

    Definition in file frame_info.h.

    + - + diff --git a/docs/html/frame__info_8h.js b/docs/html/frame__info_8h.js new file mode 100644 index 0000000..6488e18 --- /dev/null +++ b/docs/html/frame__info_8h.js @@ -0,0 +1,4 @@ +var frame__info_8h = +[ + [ "FrameInfo", "structFrameInfo.html", "structFrameInfo" ] +]; \ No newline at end of file diff --git a/docs/html/frame__info_8h_source.html b/docs/html/frame__info_8h_source.html index 32a6f1f..e8982ea 100644 --- a/docs/html/frame__info_8h_source.html +++ b/docs/html/frame__info_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: frame_info.h Source File +DBC Framework: frame_info.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    frame_info.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file frame_info.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef FRAME_INFO_H
    13#define FRAME_INFO_H
    14
    @@ -66,22 +95,18 @@
    17#include <cstdint>
    18
    19#include "signal_info.h"
    -
    20
    -
    21/**
    -
    22 * @brief Describes one CAN frame from a DBC file.
    -
    23 */
    +
    20
    24struct FrameInfo {
    -
    25 std::string name; /**< Frame name. */
    -
    26 std::uint32_t canId; /**< Normalized CAN identifier. */
    -
    27 bool isExtended; /**< true for extended frame. */
    -
    28 std::uint32_t pgn; /**< J1939 PGN if applicable. */
    -
    29 bool hasPgn; /**< true if PGN was derived. */
    -
    30 std::uint8_t dlc; /**< Frame payload length. */
    -
    31 std::string transmitter; /**< Transmitter ECU name. */
    -
    32 std::string comment; /**< Optional frame comment. */
    -
    33 std::vector<SignalInfo> signals; /**< Signals contained in the frame. */
    -
    34
    - +
    25 std::string name;
    +
    26 std::uint32_t canId;
    + +
    28 std::uint32_t pgn;
    +
    29 bool hasPgn;
    +
    30 std::uint8_t dlc;
    +
    31 std::string transmitter;
    +
    32 std::string comment;
    +
    33 std::vector<SignalInfo> signals;
    +
    35 FrameInfo()
    36 : name()
    37 , canId (0U)
    38 , isExtended (false)
    @@ -90,7 +115,7 @@
    41 , dlc (0U)
    42 , transmitter()
    43 , comment()
    -
    44 , signals() {
    +
    44 , signals() {
    45 }
    46};
    47
    @@ -99,18 +124,20 @@
    Describes one CAN frame from a DBC file.
    Definition: frame_info.h:24
    bool isExtended
    Definition: frame_info.h:27
    bool hasPgn
    Definition: frame_info.h:29
    -
    std::string transmitter
    Definition: frame_info.h:31
    -
    std::vector< SignalInfo > signals
    Definition: frame_info.h:33
    std::uint8_t dlc
    Definition: frame_info.h:30
    std::string name
    Definition: frame_info.h:25
    std::string comment
    Definition: frame_info.h:32
    std::uint32_t pgn
    Definition: frame_info.h:28
    std::uint32_t canId
    Definition: frame_info.h:26
    +
    - + diff --git a/docs/html/functions.html b/docs/html/functions.html index 04ce34c..df238d0 100644 --- a/docs/html/functions.html +++ b/docs/html/functions.html @@ -5,10 +5,17 @@ -DBC framework: Class Members +DBC Framework: Class Members + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,56 +35,55 @@
    - - - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    -
    Here is a list of all class members with links to the classes they belong to:
    +
    Here is a list of all documented class members with links to the class documentation for each member:

    - a -

    - - -

    - ~ -

    +
    - + diff --git a/docs/html/functions_func.html b/docs/html/functions_func.html index b72d7db..4a37e4b 100644 --- a/docs/html/functions_func.html +++ b/docs/html/functions_func.html @@ -5,10 +5,17 @@ -DBC framework: Class Members - Functions +DBC Framework: Class Members - Functions + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,149 +35,75 @@
    - - - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    -  - -

    - a -

    +
    - + diff --git a/docs/html/functions_vars.html b/docs/html/functions_vars.html index 5267e4b..7d44d94 100644 --- a/docs/html/functions_vars.html +++ b/docs/html/functions_vars.html @@ -5,10 +5,17 @@ -DBC framework: Class Members - Variables +DBC Framework: Class Members - Variables + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,50 +35,53 @@
    - - - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
      @@ -80,7 +91,7 @@

    - c -

    @@ -94,8 +105,7 @@

    - f -

    @@ -105,7 +115,7 @@

    - i -

    @@ -117,11 +127,6 @@

    - m -

    @@ -140,6 +145,7 @@

    - p -

    @@ -150,7 +156,6 @@

    - s -

    @@ -170,9 +175,12 @@
  • valueType : DecodeSignal
  • +
    - + diff --git a/docs/html/globals.html b/docs/html/globals.html index 18651ec..594e5b3 100644 --- a/docs/html/globals.html +++ b/docs/html/globals.html @@ -5,10 +5,17 @@ -DBC framework: File Members +DBC Framework: File Members + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,42 +35,66 @@
    - - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    -
    Here is a list of all file members with links to the files they belong to:
    +
    - + diff --git a/docs/html/globals_enum.html b/docs/html/globals_enum.html index 427a8a7..4b7186e 100644 --- a/docs/html/globals_enum.html +++ b/docs/html/globals_enum.html @@ -5,10 +5,17 @@ -DBC framework: File Members +DBC Framework: File Members + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,29 +35,53 @@
    - - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
     
    +
    - + diff --git a/docs/html/graph_legend.html b/docs/html/graph_legend.html new file mode 100644 index 0000000..b160e8c --- /dev/null +++ b/docs/html/graph_legend.html @@ -0,0 +1,158 @@ + + + + + + + +DBC Framework: Graph Legend + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    DBC Framework +
    +
    DBC parsing and CAN signal decoding framework
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    Graph Legend
    +
    +
    +

    This page explains how to interpret the graphs that are generated by doxygen.

    +

    Consider the following example:

    /*! Invisible class because of truncation */
    +
    class Invisible { };
    +
    +
    /*! Truncated class, inheritance relation is hidden */
    +
    class Truncated : public Invisible { };
    +
    +
    /* Class not documented with doxygen comments */
    +
    class Undocumented { };
    +
    +
    /*! Class that is inherited using public inheritance */
    +
    class PublicBase : public Truncated { };
    +
    +
    /*! A template class */
    +
    template<class T> class Templ { };
    +
    +
    /*! Class that is inherited using protected inheritance */
    +
    class ProtectedBase { };
    +
    +
    /*! Class that is inherited using private inheritance */
    +
    class PrivateBase { };
    +
    +
    /*! Class that is used by the Inherited class */
    +
    class Used { };
    +
    +
    /*! Super class that inherits a number of other classes */
    +
    class Inherited : public PublicBase,
    +
    protected ProtectedBase,
    +
    private PrivateBase,
    +
    public Undocumented,
    +
    public Templ<int>
    +
    {
    +
    private:
    +
    Used *m_usedClass;
    +
    };
    +

    This will result in the following graph:

    +

    The boxes in the above graph have the following meaning:

    + +

    The arrows have the following meaning:

    + +
    +
    + + + + diff --git a/docs/html/graph_legend.md5 b/docs/html/graph_legend.md5 new file mode 100644 index 0000000..5543aee --- /dev/null +++ b/docs/html/graph_legend.md5 @@ -0,0 +1 @@ +2949d8d683b49299ad5e82dbf5d1be6c \ No newline at end of file diff --git a/docs/html/graph_legend.svg b/docs/html/graph_legend.svg new file mode 100644 index 0000000..5c7a71a --- /dev/null +++ b/docs/html/graph_legend.svg @@ -0,0 +1,117 @@ + + + + + + +Graph Legend + + + +Node9 + +Inherited + + + +Node10 + +PublicBase + + + +Node10->Node9 + + + + + +Node11 + +Truncated + + + +Node11->Node10 + + + + + +Node13 + +ProtectedBase + + + +Node13->Node9 + + + + + +Node14 + +PrivateBase + + + +Node14->Node9 + + + + + +Node15 + +Undocumented + + + +Node15->Node9 + + + + + +Node16 + +Templ< int > + + + +Node16->Node9 + + + + + +Node17 + +Templ< T > + + + +Node17->Node16 + + +< int > + + + +Node18 + +Used + + + +Node18->Node9 + + +m_usedClass + + + diff --git a/docs/html/index.html b/docs/html/index.html index e4a3f66..6500132 100644 --- a/docs/html/index.html +++ b/docs/html/index.html @@ -5,10 +5,17 @@ -DBC framework: Main Page +DBC Framework: Main Page + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,24 +35,64 @@
    - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    -
    DBC framework Documentation
    +
    DBC Framework Documentation
    +
    - + diff --git a/docs/html/index.qhp b/docs/html/index.qhp index 0c034d8..8e11983 100644 --- a/docs/html/index.qhp +++ b/docs/html/index.qhp @@ -1,11 +1,17 @@ -org.doxygen.Project +ca.himro.dbcframework doc + + +dbc +framework +c++ +qt doxygen -
    +
    @@ -74,17 +80,6 @@
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    @@ -94,140 +89,99 @@
    -
    -
    -
    -
    -
    +
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    -
    -
    +
    -
    -
    -
    -
    -
    -
    +
    +
    +
    -
    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    +
    +
    +
    +
    -
    -
    -
    -
    -
    -
    +
    +
    -
    +
    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    +
    -
    -
    -
    +
    +
    +
    -
    -
    -
    -
    +
    -
    -
    +
    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    @@ -253,51 +207,30 @@
    -
    -
    +
    -
    -
    +
    -
    -
    +
    -
    -
    -
    -
    -
    +
    -
    -
    -
    +
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    @@ -308,45 +241,35 @@
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    +
    +
    +
    +
    +
    +
    -
    -
    -
    -
    -
    -
    +
    +
    +
    -
    +
    +
    +
    -
    -
    -
    -
    -
    -
    -
    -
    @@ -359,38 +282,33 @@
    -
    -
    -
    -
    -
    -
    +
    +
    -
    +
    +
    +
    +
    -
    -
    -
    -
    -
    -
    +
    +
    +
    -
    -
    -
    -
    +
    -
    -
    +
    +
    +
    +
    @@ -399,24 +317,14 @@
    -
    -
    -
    -
    -
    -
    -
    -
    +
    +
    -
    -
    -
    -
    -
    -
    -
    +
    +
    +
    @@ -427,7 +335,6 @@
    -
    @@ -450,7 +357,6 @@ - @@ -458,7 +364,6 @@ - @@ -466,28 +371,14 @@ - - - - - - - - - - - - - - @@ -497,22 +388,13 @@ - - - - - - - - - @@ -521,30 +403,18 @@ - - - - - - - - - + + + - - - - - - @@ -552,40 +422,23 @@ - - - - - - - - - - - - - - - - -README_8md.html annotated.html bc_s.png bdwn.png @@ -635,21 +488,27 @@ functions_vars.html globals.html globals_enum.html -globals_func.html +graph_legend.html +graph_legend.svg index.html jquery.js main_8cpp.html main_8cpp_source.html md_README.html -namespaceanonymous__namespace_02dbc__parser_8cpp_03.html -namespacemembers.html -namespacemembers_func.html -namespaces.html +menu.js +menudata.js nav_f.png nav_g.png nav_h.png open.png pages.html +search/close.svg +search/mag_sel.svg +search/search.css +search/search.js +search/search_l.png +search/search_m.png +search/search_r.png signal__info_8h.html signal__info_8h_source.html splitbar.png @@ -675,6 +534,7 @@ structRawCanFrame.html structSignalInfo-members.html structSignalInfo.html +svgpan.js sync_off.png sync_on.png tab_a.png diff --git a/docs/html/main_8cpp.html b/docs/html/main_8cpp.html index b2b0c08..bc44619 100644 --- a/docs/html/main_8cpp.html +++ b/docs/html/main_8cpp.html @@ -5,10 +5,17 @@ -DBC framework: main.cpp File Reference +DBC Framework: main.cpp File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    @@ -66,10 +105,6 @@ - - - -

    Functions

    static void PrintTree (const TreeNode *node, int indent)
     
    static void PrintDecodedFrame (const DecodedFrameValue &decoded)
     
    int main (int argc, char *argv[])
     
    @@ -107,88 +142,16 @@ Functions

    Definition at line 97 of file main.cpp.

    -

    References DbcTreeBuilder::Build(), DbcDecodeBuilder::Build(), RawCanFrame::canId, RawCanFrame::data, DbcDecoder::Decode(), DecodeDatabase::frames, RawCanFrame::isExtended, DbcParser::ParseFile(), PrintDecodedFrame(), and PrintTree().

    - -
    -
    - -

    ◆ PrintDecodedFrame()

    - -
    -
    - - - - - -
    - - - - - - - - -
    static void PrintDecodedFrame (const DecodedFrameValuedecoded)
    -
    -static
    -
    -
    - -

    ◆ PrintTree()

    - -
    -
    - - - - - -
    - - - - - - - - - - - - - - - - - - -
    static void PrintTree (const TreeNodenode,
    int indent 
    )
    -
    -static
    -
    + - + diff --git a/docs/html/main_8cpp_source.html b/docs/html/main_8cpp_source.html index dd07911..e15edfa 100644 --- a/docs/html/main_8cpp_source.html +++ b/docs/html/main_8cpp_source.html @@ -5,10 +5,17 @@ -DBC framework: main.cpp Source File +DBC Framework: main.cpp Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    main.cpp
    -Go to the documentation of this file.
    1/**
    -
    2 * @file main.cpp
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#include <iostream>
    13#include <iomanip>
    14#include <memory>
    @@ -69,7 +98,7 @@
    20#include "dbc_decode_builder.h"
    21#include "dbc_decoder.h"
    22
    -
    23static void PrintTree (const TreeNode *node, int indent) {
    +
    23static void PrintTree (const TreeNode *node, int indent) {
    24 if (node == nullptr)
    25 return;
    26
    @@ -77,11 +106,11 @@
    28 std::cout << " ";
    29
    30 switch (node->GetType()) {
    -
    31 case NodeType::Root:
    +
    31 case NodeType::Root:
    32 std::cout << "[root] " << node->GetName() << "\n";
    33 break;
    34
    -
    35 case NodeType::Frame: {
    +
    35 case NodeType::Frame: {
    36 const FrameInfo *frame = node->GetFrame();
    37 std::cout << "[frame] " << node->GetName();
    38
    @@ -98,7 +127,7 @@
    49 break;
    50 }
    51
    -
    52 case NodeType::Signal: {
    +
    52 case NodeType::Signal: {
    53 const SignalInfo *signal = node->GetSignal();
    54 std::cout << "[signal] " << node->GetName();
    55
    @@ -118,10 +147,10 @@
    69 }
    70
    71 for (std::size_t i = 0U; i < node->GetChildCount(); ++i)
    -
    72 PrintTree (node->GetChild (i), indent + 1);
    +
    72 PrintTree (node->GetChild (i), indent + 1);
    73}
    74
    -
    75static void PrintDecodedFrame (const DecodedFrameValue &decoded) {
    +
    75static void PrintDecodedFrame (const DecodedFrameValue &decoded) {
    76 if (!decoded.valid || (decoded.definition == nullptr)) {
    77 std::cout << "No frame definition found.\n";
    78 return;
    @@ -129,8 +158,8 @@
    80
    81 std::cout << "Decoded frame: " << decoded.definition->name << "\n";
    82
    -
    83 for (std::size_t index = 0U; index < decoded.signals.size(); ++index) {
    -
    84 const DecodedSignalValue &signal = decoded.signals[index];
    +
    83 for (std::size_t index = 0U; index < decoded.signals.size(); ++index) {
    +
    84 const DecodedSignalValue &signal = decoded.signals[index];
    85
    86 if ((signal.definition == nullptr) || !signal.valid)
    87 continue;
    @@ -143,7 +172,7 @@
    94 }
    95}
    96
    -
    97int main (int argc, char *argv[]) {
    +
    97int main (int argc, char *argv[]) {
    98 if (argc < 2) {
    99 std::cerr << "Usage: dbc_demo <file.dbc>\n";
    100 return 1;
    @@ -157,7 +186,7 @@
    108 std::unique_ptr<TreeNode> root = treeBuilder.Build (database);
    109
    110 std::cout << "=== Parsed tree ===\n";
    -
    111 PrintTree (root.get(), 0);
    +
    111 PrintTree (root.get(), 0);
    112
    113 DbcDecodeBuilder decodeBuilder;
    114 DecodeDatabase decodeDatabase = decodeBuilder.Build (database);
    @@ -167,15 +196,15 @@
    118 * Replace with live CAN frame or trace record later.
    119 */
    120 RawCanFrame rawFrame;
    -
    121 rawFrame.canId = decodeDatabase.frames.empty() ? 0U : decodeDatabase.frames[0].canId;
    -
    122 rawFrame.isExtended = decodeDatabase.frames.empty() ? false : decodeDatabase.frames[0].isExtended;
    +
    121 rawFrame.canId = decodeDatabase.frames.empty() ? 0U : decodeDatabase.frames[0].canId;
    +
    122 rawFrame.isExtended = decodeDatabase.frames.empty() ? false : decodeDatabase.frames[0].isExtended;
    123 rawFrame.data.resize (8U, 0U);
    124
    125 DbcDecoder decoder;
    126 DecodedFrameValue decoded = decoder.Decode (decodeDatabase, rawFrame);
    127
    128 std::cout << "\n=== Decoded frame ===\n";
    -
    129 PrintDecodedFrame (decoded);
    +
    129 PrintDecodedFrame (decoded);
    130 } catch (const std::exception &ex) {
    131 std::cerr << "Error: " << ex.what() << "\n";
    132 return 2;
    @@ -202,19 +231,14 @@
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    -
    int main(int argc, char *argv[])
    Definition: main.cpp:97
    -
    static void PrintDecodedFrame(const DecodedFrameValue &decoded)
    Definition: main.cpp:75
    -
    static void PrintTree(const TreeNode *node, int indent)
    Definition: main.cpp:23
    Parsed DBC content stored in a simple internal form.
    Definition: dbc_database.h:22
    Runtime decode database with fast lookup by CAN ID.
    -
    std::vector< DecodeFrame > frames
    std::string name
    std::string unit
    std::string name
    Fully decoded frame.
    Definition: dbc_decoder.h:55
    const DecodeFrame * definition
    Definition: dbc_decoder.h:56
    -
    std::vector< DecodedSignalValue > signals
    Definition: dbc_decoder.h:57
    One decoded signal value.
    Definition: dbc_decoder.h:38
    std::int64_t rawValue
    Definition: dbc_decoder.h:40
    @@ -234,13 +258,14 @@
    std::uint32_t length
    Definition: signal_info.h:25
    std::string unit
    Definition: signal_info.h:32
    std::uint32_t startBit
    Definition: signal_info.h:24
    - - -
    +
    - + diff --git a/docs/html/md_README.html b/docs/html/md_README.html index f6dd088..bf84030 100644 --- a/docs/html/md_README.html +++ b/docs/html/md_README.html @@ -5,10 +5,17 @@ -DBC framework: DBC Parser and Runtime Decode Module Documentation +DBC Framework: DBC Parser and Runtime Decode Module Documentation + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,16 +35,53 @@
    - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DBC Parser and Runtime Decode Module Documentation
    @@ -732,9 +777,12 @@ Runtime decode representation

    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.

    + - + diff --git a/docs/html/menu.js b/docs/html/menu.js new file mode 100644 index 0000000..818b859 --- /dev/null +++ b/docs/html/menu.js @@ -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+='
      '; + 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+='
    • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
    • '; + } + result+='
    '; + } + return result; + } + var searchBox; + if (searchEnabled) { + if (serverSide) { + searchBox='
    '+ + '
    '+ + '
    '+ + ''+ + '
    '+ + '
    '+ + '
    '+ + '
    '; + } else { + searchBox='
    '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '' + '' + '
    '; + } + } + + $('#main-nav').before('
    '+ + ''+ + ''+ + '
    '); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBox) { + $('#main-menu').append('
  • '); + } + 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 */ diff --git a/docs/html/menudata.js b/docs/html/menudata.js index 34f2450..96a64d1 100644 --- a/docs/html/menudata.js +++ b/docs/html/menudata.js @@ -25,11 +25,6 @@ var menudata={children:[ {text:"Main Page",url:"index.html"}, {text:"Related Pages",url:"pages.html"}, -{text:"Namespaces",url:"namespaces.html",children:[ -{text:"Namespace List",url:"namespaces.html"}, -{text:"Namespace Members",url:"namespacemembers.html",children:[ -{text:"All",url:"namespacemembers.html"}, -{text:"Functions",url:"namespacemembers_func.html"}]}]}, {text:"Classes",url:"annotated.html",children:[ {text:"Class List",url:"annotated.html"}, {text:"Class Index",url:"classes.html"}, @@ -39,7 +34,6 @@ var menudata={children:[ {text:"b",url:"functions.html#index_b"}, {text:"c",url:"functions.html#index_c"}, {text:"d",url:"functions.html#index_d"}, -{text:"e",url:"functions.html#index_e"}, {text:"f",url:"functions.html#index_f"}, {text:"g",url:"functions.html#index_g"}, {text:"h",url:"functions.html#index_h"}, @@ -53,23 +47,8 @@ var menudata={children:[ {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:"~",url:"functions.html#index__7E"}]}, -{text:"Functions",url:"functions_func.html",children:[ -{text:"a",url:"functions_func.html#index_a"}, -{text:"b",url:"functions_func.html#index_b"}, -{text:"d",url:"functions_func.html#index_d"}, -{text:"e",url:"functions_func.html#index_e"}, -{text:"f",url:"functions_func.html#index_f"}, -{text:"g",url:"functions_func.html#index_g"}, -{text:"i",url:"functions_func.html#index_i"}, -{text:"n",url:"functions_func.html#index_n"}, -{text:"o",url:"functions_func.html#index_o"}, -{text:"p",url:"functions_func.html#index_p"}, -{text:"r",url:"functions_func.html#index_r"}, -{text:"s",url:"functions_func.html#index_s"}, -{text:"t",url:"functions_func.html#index_t"}, -{text:"~",url:"functions_func.html#index__7E"}]}, +{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"}, @@ -91,5 +70,4 @@ var menudata={children:[ {text:"File List",url:"files.html"}, {text:"File Members",url:"globals.html",children:[ {text:"All",url:"globals.html"}, -{text:"Functions",url:"globals_func.html"}, {text:"Enumerations",url:"globals_enum.html"}]}]}]} diff --git a/docs/html/navtree.css b/docs/html/navtree.css new file mode 100644 index 0000000..20c9e0d --- /dev/null +++ b/docs/html/navtree.css @@ -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; } +} + diff --git a/docs/html/navtree.js b/docs/html/navtree.js new file mode 100644 index 0000000..2798368 --- /dev/null +++ b/docs/html/navtree.js @@ -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 = '▼'; +var arrowRight = '►'; + +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 = ' '; + 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+11) 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(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +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(/SignalInfo", "md_README.html#autotoc_md18", null ], + [ "FrameInfo", "md_README.html#autotoc_md20", null ], + [ "DbcDatabase", "md_README.html#autotoc_md22", null ], + [ "UI Tree Layer", "md_README.html#autotoc_md24", null ], + [ "TreeNode", "md_README.html#autotoc_md25", null ], + [ "Runtime Decode Layer", "md_README.html#autotoc_md27", null ], + [ "Purpose", "md_README.html#autotoc_md28", null ], + [ "ByteOrder", "md_README.html#autotoc_md30", null ], + [ "ValueType", "md_README.html#autotoc_md32", null ], + [ "DecodeSignal", "md_README.html#autotoc_md34", null ], + [ "DecodeFrame", "md_README.html#autotoc_md36", null ], + [ "FrameKey", "md_README.html#autotoc_md38", null ], + [ "DecodeDatabase", "md_README.html#autotoc_md40", null ], + [ "Decoder Layer", "md_README.html#autotoc_md42", null ], + [ "RawCanFrame", "md_README.html#autotoc_md43", null ], + [ "DecodedSignalValue", "md_README.html#autotoc_md45", null ], + [ "DecodedFrameValue", "md_README.html#autotoc_md47", null ], + [ "DbcDecoder", "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'; \ No newline at end of file diff --git a/docs/html/navtreeindex0.js b/docs/html/navtreeindex0.js new file mode 100644 index 0000000..aa3896e --- /dev/null +++ b/docs/html/navtreeindex0.js @@ -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] +}; diff --git a/docs/html/pages.html b/docs/html/pages.html index 8f9cce5..1f4374d 100644 --- a/docs/html/pages.html +++ b/docs/html/pages.html @@ -5,10 +5,17 @@ -DBC framework: Related Pages +DBC Framework: Related Pages + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,16 +35,53 @@
    - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    Related Pages
    @@ -47,9 +92,12 @@
    + - + diff --git a/docs/html/resize.js b/docs/html/resize.js new file mode 100644 index 0000000..7fe30d1 --- /dev/null +++ b/docs/html/resize.js @@ -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) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + 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 */ diff --git a/docs/html/search/all_0.html b/docs/html/search/all_0.html new file mode 100644 index 0000000..bb9e364 --- /dev/null +++ b/docs/html/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_0.js b/docs/html/search/all_0.js new file mode 100644 index 0000000..ca215cf --- /dev/null +++ b/docs/html/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['addchild_0',['AddChild',['../classTreeNode.html#a6161f2ebb92184eab4215d121870e788',1,'TreeNode']]] +]; diff --git a/docs/html/search/all_1.html b/docs/html/search/all_1.html new file mode 100644 index 0000000..8989416 --- /dev/null +++ b/docs/html/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_1.js b/docs/html/search/all_1.js new file mode 100644 index 0000000..4506f0c --- /dev/null +++ b/docs/html/search/all_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['build_0',['Build',['../classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b',1,'DbcDecodeBuilder::Build()'],['../classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b',1,'DbcTreeBuilder::Build()']]], + ['byteorder_1',['byteOrder',['../structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d',1,'DecodeSignal']]], + ['byteorder_2',['ByteOrder',['../decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b',1,'decode_database.h']]] +]; diff --git a/docs/html/search/all_10.html b/docs/html/search/all_10.html new file mode 100644 index 0000000..a7c1f9c --- /dev/null +++ b/docs/html/search/all_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_10.js b/docs/html/search/all_10.js new file mode 100644 index 0000000..1917cda --- /dev/null +++ b/docs/html/search/all_10.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unit_0',['unit',['../structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092',1,'DecodeSignal::unit()'],['../structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01',1,'SignalInfo::unit()']]] +]; diff --git a/docs/html/search/all_11.html b/docs/html/search/all_11.html new file mode 100644 index 0000000..8f86146 --- /dev/null +++ b/docs/html/search/all_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_11.js b/docs/html/search/all_11.js new file mode 100644 index 0000000..c0770ac --- /dev/null +++ b/docs/html/search/all_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['valid_0',['valid',['../structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686',1,'DecodedSignalValue::valid()'],['../structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0',1,'DecodedFrameValue::valid()']]], + ['valuetype_1',['valueType',['../structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8',1,'DecodeSignal']]], + ['valuetype_2',['ValueType',['../decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1',1,'decode_database.h']]] +]; diff --git a/docs/html/search/all_2.html b/docs/html/search/all_2.html new file mode 100644 index 0000000..98e648c --- /dev/null +++ b/docs/html/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_2.js b/docs/html/search/all_2.js new file mode 100644 index 0000000..ec3952d --- /dev/null +++ b/docs/html/search/all_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['canid_0',['canId',['../structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4',1,'RawCanFrame::canId()'],['../structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf',1,'DecodeFrame::canId()'],['../structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e',1,'FrameInfo::canId()']]], + ['comment_1',['comment',['../structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473',1,'DecodeSignal::comment()'],['../structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22',1,'DecodeFrame::comment()'],['../structFrameInfo.html#ace75121294f9d89b762080ab5643293c',1,'FrameInfo::comment()'],['../structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5',1,'SignalInfo::comment()']]] +]; diff --git a/docs/html/search/all_3.html b/docs/html/search/all_3.html new file mode 100644 index 0000000..f4e8da7 --- /dev/null +++ b/docs/html/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_3.js b/docs/html/search/all_3.js new file mode 100644 index 0000000..68f18d8 --- /dev/null +++ b/docs/html/search/all_3.js @@ -0,0 +1,28 @@ +var searchData= +[ + ['data_0',['data',['../structRawCanFrame.html#a0acb487612104c99c9907344c035df83',1,'RawCanFrame']]], + ['dbc_20parser_20and_20runtime_20decode_20module_20documentation_1',['DBC Parser and Runtime Decode Module Documentation',['../md_README.html',1,'']]], + ['dbc_5fdatabase_2eh_2',['dbc_database.h',['../dbc__database_8h.html',1,'']]], + ['dbc_5fdecode_5fbuilder_2ecpp_3',['dbc_decode_builder.cpp',['../dbc__decode__builder_8cpp.html',1,'']]], + ['dbc_5fdecode_5fbuilder_2eh_4',['dbc_decode_builder.h',['../dbc__decode__builder_8h.html',1,'']]], + ['dbc_5fdecoder_2ecpp_5',['dbc_decoder.cpp',['../dbc__decoder_8cpp.html',1,'']]], + ['dbc_5fdecoder_2eh_6',['dbc_decoder.h',['../dbc__decoder_8h.html',1,'']]], + ['dbc_5fparser_2ecpp_7',['dbc_parser.cpp',['../dbc__parser_8cpp.html',1,'']]], + ['dbc_5fparser_2eh_8',['dbc_parser.h',['../dbc__parser_8h.html',1,'']]], + ['dbc_5ftree_5fbuilder_2ecpp_9',['dbc_tree_builder.cpp',['../dbc__tree__builder_8cpp.html',1,'']]], + ['dbc_5ftree_5fbuilder_2eh_10',['dbc_tree_builder.h',['../dbc__tree__builder_8h.html',1,'']]], + ['dbcdatabase_11',['DbcDatabase',['../structDbcDatabase.html',1,'']]], + ['dbcdecodebuilder_12',['DbcDecodeBuilder',['../classDbcDecodeBuilder.html',1,'']]], + ['dbcdecoder_13',['DbcDecoder',['../classDbcDecoder.html',1,'']]], + ['dbcparser_14',['DbcParser',['../classDbcParser.html',1,'']]], + ['dbctreebuilder_15',['DbcTreeBuilder',['../classDbcTreeBuilder.html',1,'']]], + ['decode_16',['Decode',['../classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7',1,'DbcDecoder']]], + ['decode_5fdatabase_2eh_17',['decode_database.h',['../decode__database_8h.html',1,'']]], + ['decodedatabase_18',['DecodeDatabase',['../structDecodeDatabase.html',1,'']]], + ['decodedframevalue_19',['DecodedFrameValue',['../structDecodedFrameValue.html',1,'']]], + ['decodedsignalvalue_20',['DecodedSignalValue',['../structDecodedSignalValue.html',1,'']]], + ['decodeframe_21',['DecodeFrame',['../structDecodeFrame.html',1,'']]], + ['decodesignal_22',['DecodeSignal',['../structDecodeSignal.html',1,'']]], + ['definition_23',['definition',['../structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7',1,'DecodedSignalValue::definition()'],['../structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c',1,'DecodedFrameValue::definition()']]], + ['dlc_24',['dlc',['../structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060',1,'DecodeFrame::dlc()'],['../structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9',1,'FrameInfo::dlc()']]] +]; diff --git a/docs/html/search/all_4.html b/docs/html/search/all_4.html new file mode 100644 index 0000000..678d3a2 --- /dev/null +++ b/docs/html/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_4.js b/docs/html/search/all_4.js new file mode 100644 index 0000000..741adc5 --- /dev/null +++ b/docs/html/search/all_4.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['factor_0',['factor',['../structDecodeSignal.html#a428c39913a366a8476dd291061354391',1,'DecodeSignal::factor()'],['../structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499',1,'SignalInfo::factor()']]], + ['findframe_1',['FindFrame',['../classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da',1,'DbcDecoder']]], + ['frame_5finfo_2eh_2',['frame_info.h',['../frame__info_8h.html',1,'']]], + ['frameinfo_3',['FrameInfo',['../structFrameInfo.html',1,'']]], + ['framekey_4',['FrameKey',['../structFrameKey.html',1,'']]], + ['framekeyhasher_5',['FrameKeyHasher',['../structFrameKeyHasher.html',1,'']]], + ['frames_6',['frames',['../structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b',1,'DbcDatabase']]] +]; diff --git a/docs/html/search/all_5.html b/docs/html/search/all_5.html new file mode 100644 index 0000000..aa9af78 --- /dev/null +++ b/docs/html/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_5.js b/docs/html/search/all_5.js new file mode 100644 index 0000000..3319dfe --- /dev/null +++ b/docs/html/search/all_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['getchild_0',['GetChild',['../classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6',1,'TreeNode::GetChild(std::size_t index) const'],['../classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f',1,'TreeNode::GetChild(std::size_t index)']]], + ['getchildcount_1',['GetChildCount',['../classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea',1,'TreeNode']]], + ['getframe_2',['GetFrame',['../classTreeNode.html#afc503b40004764163605d6dbdb4ef811',1,'TreeNode']]], + ['getname_3',['GetName',['../classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18',1,'TreeNode']]], + ['getsignal_4',['GetSignal',['../classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1',1,'TreeNode']]], + ['gettype_5',['GetType',['../classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9',1,'TreeNode']]] +]; diff --git a/docs/html/search/all_6.html b/docs/html/search/all_6.html new file mode 100644 index 0000000..d3026a7 --- /dev/null +++ b/docs/html/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_6.js b/docs/html/search/all_6.js new file mode 100644 index 0000000..34587db --- /dev/null +++ b/docs/html/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['haspgn_0',['hasPgn',['../structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d',1,'DecodeFrame::hasPgn()'],['../structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d',1,'FrameInfo::hasPgn()']]] +]; diff --git a/docs/html/search/all_7.html b/docs/html/search/all_7.html new file mode 100644 index 0000000..b2ee042 --- /dev/null +++ b/docs/html/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_7.js b/docs/html/search/all_7.js new file mode 100644 index 0000000..b82eca0 --- /dev/null +++ b/docs/html/search/all_7.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['isextended_0',['isExtended',['../structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7',1,'RawCanFrame::isExtended()'],['../structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41',1,'DecodeFrame::isExtended()'],['../structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf',1,'FrameInfo::isExtended()']]], + ['islittleendian_1',['isLittleEndian',['../structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c',1,'SignalInfo']]], + ['issigned_2',['isSigned',['../structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f',1,'SignalInfo']]] +]; diff --git a/docs/html/search/all_8.html b/docs/html/search/all_8.html new file mode 100644 index 0000000..40a0b3f --- /dev/null +++ b/docs/html/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_8.js b/docs/html/search/all_8.js new file mode 100644 index 0000000..12aa6af --- /dev/null +++ b/docs/html/search/all_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['length_0',['length',['../structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb',1,'DecodeSignal::length()'],['../structSignalInfo.html#a1008b5201f71848177217bd52fb84baa',1,'SignalInfo::length()']]] +]; diff --git a/docs/html/search/all_9.html b/docs/html/search/all_9.html new file mode 100644 index 0000000..7c49144 --- /dev/null +++ b/docs/html/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_9.js b/docs/html/search/all_9.js new file mode 100644 index 0000000..aeab39d --- /dev/null +++ b/docs/html/search/all_9.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]], + ['maximum_1',['maximum',['../structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7',1,'DecodeSignal::maximum()'],['../structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52',1,'SignalInfo::maximum()']]], + ['minimum_2',['minimum',['../structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25',1,'DecodeSignal::minimum()'],['../structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b',1,'SignalInfo::minimum()']]] +]; diff --git a/docs/html/search/all_a.html b/docs/html/search/all_a.html new file mode 100644 index 0000000..fc9d79c --- /dev/null +++ b/docs/html/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_a.js b/docs/html/search/all_a.js new file mode 100644 index 0000000..251adad --- /dev/null +++ b/docs/html/search/all_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['name_0',['name',['../structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780',1,'DecodeSignal::name()'],['../structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579',1,'DecodeFrame::name()'],['../structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb',1,'FrameInfo::name()'],['../structSignalInfo.html#a379e422a00cad56f896cacf60455b088',1,'SignalInfo::name()']]], + ['nodetype_1',['NodeType',['../tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16',1,'tree_node.h']]] +]; diff --git a/docs/html/search/all_b.html b/docs/html/search/all_b.html new file mode 100644 index 0000000..dafb1fa --- /dev/null +++ b/docs/html/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_b.js b/docs/html/search/all_b.js new file mode 100644 index 0000000..c896e33 --- /dev/null +++ b/docs/html/search/all_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['offset_0',['offset',['../structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74',1,'DecodeSignal::offset()'],['../structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e',1,'SignalInfo::offset()']]] +]; diff --git a/docs/html/search/all_c.html b/docs/html/search/all_c.html new file mode 100644 index 0000000..9df619d --- /dev/null +++ b/docs/html/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_c.js b/docs/html/search/all_c.js new file mode 100644 index 0000000..badd1ba --- /dev/null +++ b/docs/html/search/all_c.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['parsefile_0',['ParseFile',['../classDbcParser.html#aef72826942c9095d653fafa435855e56',1,'DbcParser']]], + ['pgn_1',['pgn',['../structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23',1,'DecodeFrame::pgn()'],['../structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943',1,'FrameInfo::pgn()']]], + ['physicalvalue_2',['physicalValue',['../structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978',1,'DecodedSignalValue']]], + ['public_3',['public',['../structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8',1,'DecodedFrameValue::public()'],['../structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14',1,'DecodeFrame::public()'],['../structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084',1,'FrameInfo::public()']]] +]; diff --git a/docs/html/search/all_d.html b/docs/html/search/all_d.html new file mode 100644 index 0000000..95d8eec --- /dev/null +++ b/docs/html/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_d.js b/docs/html/search/all_d.js new file mode 100644 index 0000000..55695ce --- /dev/null +++ b/docs/html/search/all_d.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['rawcanframe_0',['RawCanFrame',['../structRawCanFrame.html',1,'']]], + ['rawvalue_1',['rawValue',['../structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec',1,'DecodedSignalValue']]], + ['receivers_2',['receivers',['../structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa',1,'DecodeSignal::receivers()'],['../structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3',1,'SignalInfo::receivers()']]] +]; diff --git a/docs/html/search/all_e.html b/docs/html/search/all_e.html new file mode 100644 index 0000000..a54e120 --- /dev/null +++ b/docs/html/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_e.js b/docs/html/search/all_e.js new file mode 100644 index 0000000..d56d0c7 --- /dev/null +++ b/docs/html/search/all_e.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['signal_5finfo_2eh_0',['signal_info.h',['../signal__info_8h.html',1,'']]], + ['signalinfo_1',['SignalInfo',['../structSignalInfo.html',1,'']]], + ['startbit_2',['startBit',['../structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d',1,'DecodeSignal::startBit()'],['../structSignalInfo.html#ace290724f9801521609aedaa946d61f1',1,'SignalInfo::startBit()']]] +]; diff --git a/docs/html/search/all_f.html b/docs/html/search/all_f.html new file mode 100644 index 0000000..8d0aed3 --- /dev/null +++ b/docs/html/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/all_f.js b/docs/html/search/all_f.js new file mode 100644 index 0000000..b7db7b5 --- /dev/null +++ b/docs/html/search/all_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['transmitter_0',['transmitter',['../structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9',1,'DecodeFrame::transmitter()'],['../structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8',1,'FrameInfo::transmitter()']]], + ['tree_5fnode_2ecpp_1',['tree_node.cpp',['../tree__node_8cpp.html',1,'']]], + ['tree_5fnode_2eh_2',['tree_node.h',['../tree__node_8h.html',1,'']]], + ['treenode_3',['TreeNode',['../classTreeNode.html',1,'TreeNode'],['../classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d',1,'TreeNode::TreeNode()'],['../classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc',1,'TreeNode::TreeNode(const FrameInfo &frame)'],['../classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae',1,'TreeNode::TreeNode(const SignalInfo &signal)']]] +]; diff --git a/docs/html/search/classes_0.html b/docs/html/search/classes_0.html new file mode 100644 index 0000000..9d4f871 --- /dev/null +++ b/docs/html/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_0.js b/docs/html/search/classes_0.js new file mode 100644 index 0000000..85200ca --- /dev/null +++ b/docs/html/search/classes_0.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['dbcdatabase_0',['DbcDatabase',['../structDbcDatabase.html',1,'']]], + ['dbcdecodebuilder_1',['DbcDecodeBuilder',['../classDbcDecodeBuilder.html',1,'']]], + ['dbcdecoder_2',['DbcDecoder',['../classDbcDecoder.html',1,'']]], + ['dbcparser_3',['DbcParser',['../classDbcParser.html',1,'']]], + ['dbctreebuilder_4',['DbcTreeBuilder',['../classDbcTreeBuilder.html',1,'']]], + ['decodedatabase_5',['DecodeDatabase',['../structDecodeDatabase.html',1,'']]], + ['decodedframevalue_6',['DecodedFrameValue',['../structDecodedFrameValue.html',1,'']]], + ['decodedsignalvalue_7',['DecodedSignalValue',['../structDecodedSignalValue.html',1,'']]], + ['decodeframe_8',['DecodeFrame',['../structDecodeFrame.html',1,'']]], + ['decodesignal_9',['DecodeSignal',['../structDecodeSignal.html',1,'']]] +]; diff --git a/docs/html/search/classes_1.html b/docs/html/search/classes_1.html new file mode 100644 index 0000000..0557f9f --- /dev/null +++ b/docs/html/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_1.js b/docs/html/search/classes_1.js new file mode 100644 index 0000000..4259dc9 --- /dev/null +++ b/docs/html/search/classes_1.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['frameinfo_0',['FrameInfo',['../structFrameInfo.html',1,'']]], + ['framekey_1',['FrameKey',['../structFrameKey.html',1,'']]], + ['framekeyhasher_2',['FrameKeyHasher',['../structFrameKeyHasher.html',1,'']]] +]; diff --git a/docs/html/search/classes_2.html b/docs/html/search/classes_2.html new file mode 100644 index 0000000..fa20861 --- /dev/null +++ b/docs/html/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_2.js b/docs/html/search/classes_2.js new file mode 100644 index 0000000..ee60254 --- /dev/null +++ b/docs/html/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['rawcanframe_0',['RawCanFrame',['../structRawCanFrame.html',1,'']]] +]; diff --git a/docs/html/search/classes_3.html b/docs/html/search/classes_3.html new file mode 100644 index 0000000..98fbc87 --- /dev/null +++ b/docs/html/search/classes_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_3.js b/docs/html/search/classes_3.js new file mode 100644 index 0000000..3cc8467 --- /dev/null +++ b/docs/html/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['signalinfo_0',['SignalInfo',['../structSignalInfo.html',1,'']]] +]; diff --git a/docs/html/search/classes_4.html b/docs/html/search/classes_4.html new file mode 100644 index 0000000..3b6c51e --- /dev/null +++ b/docs/html/search/classes_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/classes_4.js b/docs/html/search/classes_4.js new file mode 100644 index 0000000..740b87e --- /dev/null +++ b/docs/html/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['treenode_0',['TreeNode',['../classTreeNode.html',1,'']]] +]; diff --git a/docs/html/search/close.svg b/docs/html/search/close.svg new file mode 100644 index 0000000..a933eea --- /dev/null +++ b/docs/html/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/docs/html/search/enums_0.html b/docs/html/search/enums_0.html new file mode 100644 index 0000000..ec25efd --- /dev/null +++ b/docs/html/search/enums_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/enums_0.js b/docs/html/search/enums_0.js new file mode 100644 index 0000000..f52116f --- /dev/null +++ b/docs/html/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['byteorder_0',['ByteOrder',['../decode__database_8h.html#aaeb92d42f5a6e27b8ba19f18d69d142b',1,'decode_database.h']]] +]; diff --git a/docs/html/search/enums_1.html b/docs/html/search/enums_1.html new file mode 100644 index 0000000..cc99a33 --- /dev/null +++ b/docs/html/search/enums_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/enums_1.js b/docs/html/search/enums_1.js new file mode 100644 index 0000000..07a6d2a --- /dev/null +++ b/docs/html/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['nodetype_0',['NodeType',['../tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16',1,'tree_node.h']]] +]; diff --git a/docs/html/search/enums_2.html b/docs/html/search/enums_2.html new file mode 100644 index 0000000..cd5e771 --- /dev/null +++ b/docs/html/search/enums_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/enums_2.js b/docs/html/search/enums_2.js new file mode 100644 index 0000000..9189d7f --- /dev/null +++ b/docs/html/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['valuetype_0',['ValueType',['../decode__database_8h.html#ad9971b6ef33e02ba2c75d19c1d2518a1',1,'decode_database.h']]] +]; diff --git a/docs/html/search/files_0.html b/docs/html/search/files_0.html new file mode 100644 index 0000000..2dbb4c2 --- /dev/null +++ b/docs/html/search/files_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_0.js b/docs/html/search/files_0.js new file mode 100644 index 0000000..e3df137 --- /dev/null +++ b/docs/html/search/files_0.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['dbc_5fdatabase_2eh_0',['dbc_database.h',['../dbc__database_8h.html',1,'']]], + ['dbc_5fdecode_5fbuilder_2ecpp_1',['dbc_decode_builder.cpp',['../dbc__decode__builder_8cpp.html',1,'']]], + ['dbc_5fdecode_5fbuilder_2eh_2',['dbc_decode_builder.h',['../dbc__decode__builder_8h.html',1,'']]], + ['dbc_5fdecoder_2ecpp_3',['dbc_decoder.cpp',['../dbc__decoder_8cpp.html',1,'']]], + ['dbc_5fdecoder_2eh_4',['dbc_decoder.h',['../dbc__decoder_8h.html',1,'']]], + ['dbc_5fparser_2ecpp_5',['dbc_parser.cpp',['../dbc__parser_8cpp.html',1,'']]], + ['dbc_5fparser_2eh_6',['dbc_parser.h',['../dbc__parser_8h.html',1,'']]], + ['dbc_5ftree_5fbuilder_2ecpp_7',['dbc_tree_builder.cpp',['../dbc__tree__builder_8cpp.html',1,'']]], + ['dbc_5ftree_5fbuilder_2eh_8',['dbc_tree_builder.h',['../dbc__tree__builder_8h.html',1,'']]], + ['decode_5fdatabase_2eh_9',['decode_database.h',['../decode__database_8h.html',1,'']]] +]; diff --git a/docs/html/search/files_1.html b/docs/html/search/files_1.html new file mode 100644 index 0000000..18ccd15 --- /dev/null +++ b/docs/html/search/files_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_1.js b/docs/html/search/files_1.js new file mode 100644 index 0000000..7cebf32 --- /dev/null +++ b/docs/html/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['frame_5finfo_2eh_0',['frame_info.h',['../frame__info_8h.html',1,'']]] +]; diff --git a/docs/html/search/files_2.html b/docs/html/search/files_2.html new file mode 100644 index 0000000..a4c2be4 --- /dev/null +++ b/docs/html/search/files_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_2.js b/docs/html/search/files_2.js new file mode 100644 index 0000000..695b4fd --- /dev/null +++ b/docs/html/search/files_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_2ecpp_0',['main.cpp',['../main_8cpp.html',1,'']]] +]; diff --git a/docs/html/search/files_3.html b/docs/html/search/files_3.html new file mode 100644 index 0000000..3ac4cfb --- /dev/null +++ b/docs/html/search/files_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_3.js b/docs/html/search/files_3.js new file mode 100644 index 0000000..e805d1d --- /dev/null +++ b/docs/html/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['signal_5finfo_2eh_0',['signal_info.h',['../signal__info_8h.html',1,'']]] +]; diff --git a/docs/html/search/files_4.html b/docs/html/search/files_4.html new file mode 100644 index 0000000..eb19ecf --- /dev/null +++ b/docs/html/search/files_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/files_4.js b/docs/html/search/files_4.js new file mode 100644 index 0000000..b1801c1 --- /dev/null +++ b/docs/html/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tree_5fnode_2ecpp_0',['tree_node.cpp',['../tree__node_8cpp.html',1,'']]], + ['tree_5fnode_2eh_1',['tree_node.h',['../tree__node_8h.html',1,'']]] +]; diff --git a/docs/html/search/functions_0.html b/docs/html/search/functions_0.html new file mode 100644 index 0000000..3b739c7 --- /dev/null +++ b/docs/html/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_0.js b/docs/html/search/functions_0.js new file mode 100644 index 0000000..ca215cf --- /dev/null +++ b/docs/html/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['addchild_0',['AddChild',['../classTreeNode.html#a6161f2ebb92184eab4215d121870e788',1,'TreeNode']]] +]; diff --git a/docs/html/search/functions_1.html b/docs/html/search/functions_1.html new file mode 100644 index 0000000..2cef5e3 --- /dev/null +++ b/docs/html/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_1.js b/docs/html/search/functions_1.js new file mode 100644 index 0000000..1ce5ea1 --- /dev/null +++ b/docs/html/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['build_0',['Build',['../classDbcDecodeBuilder.html#a2bc6386dfb5e58976c42e22c19ec471b',1,'DbcDecodeBuilder::Build()'],['../classDbcTreeBuilder.html#a7e57d067d831b14b383947fd125edd4b',1,'DbcTreeBuilder::Build()']]] +]; diff --git a/docs/html/search/functions_2.html b/docs/html/search/functions_2.html new file mode 100644 index 0000000..3308c65 --- /dev/null +++ b/docs/html/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_2.js b/docs/html/search/functions_2.js new file mode 100644 index 0000000..a362985 --- /dev/null +++ b/docs/html/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['decode_0',['Decode',['../classDbcDecoder.html#a345951ffe5d943a70d3a1ea1f39e74f7',1,'DbcDecoder']]] +]; diff --git a/docs/html/search/functions_3.html b/docs/html/search/functions_3.html new file mode 100644 index 0000000..43ac697 --- /dev/null +++ b/docs/html/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_3.js b/docs/html/search/functions_3.js new file mode 100644 index 0000000..4087d48 --- /dev/null +++ b/docs/html/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['findframe_0',['FindFrame',['../classDbcDecoder.html#ab2cfb2fb711c95d3a29365546b89f3da',1,'DbcDecoder']]] +]; diff --git a/docs/html/search/functions_4.html b/docs/html/search/functions_4.html new file mode 100644 index 0000000..d12c2df --- /dev/null +++ b/docs/html/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_4.js b/docs/html/search/functions_4.js new file mode 100644 index 0000000..3319dfe --- /dev/null +++ b/docs/html/search/functions_4.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['getchild_0',['GetChild',['../classTreeNode.html#a4727ff801a2d1b9323c5ae50a35457a6',1,'TreeNode::GetChild(std::size_t index) const'],['../classTreeNode.html#a81047bd7d2a4cc96b9ef5e20d0d63b5f',1,'TreeNode::GetChild(std::size_t index)']]], + ['getchildcount_1',['GetChildCount',['../classTreeNode.html#abdd82460187dca8d3e5d66f5d5c529ea',1,'TreeNode']]], + ['getframe_2',['GetFrame',['../classTreeNode.html#afc503b40004764163605d6dbdb4ef811',1,'TreeNode']]], + ['getname_3',['GetName',['../classTreeNode.html#aaac5b8d9dc9e5ae1f367d1adbcf20e18',1,'TreeNode']]], + ['getsignal_4',['GetSignal',['../classTreeNode.html#a226518612d0d00b5988a2c44fc21d3f1',1,'TreeNode']]], + ['gettype_5',['GetType',['../classTreeNode.html#afa2f4b0aafa12d3d41ed00df8e0250c9',1,'TreeNode']]] +]; diff --git a/docs/html/search/functions_5.html b/docs/html/search/functions_5.html new file mode 100644 index 0000000..7266236 --- /dev/null +++ b/docs/html/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_5.js b/docs/html/search/functions_5.js new file mode 100644 index 0000000..514d33b --- /dev/null +++ b/docs/html/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['parsefile_0',['ParseFile',['../classDbcParser.html#aef72826942c9095d653fafa435855e56',1,'DbcParser']]] +]; diff --git a/docs/html/search/functions_6.html b/docs/html/search/functions_6.html new file mode 100644 index 0000000..7f9fc45 --- /dev/null +++ b/docs/html/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/functions_6.js b/docs/html/search/functions_6.js new file mode 100644 index 0000000..b3a8b4b --- /dev/null +++ b/docs/html/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['treenode_0',['TreeNode',['../classTreeNode.html#a984a98d5ccf7ef1f5a18094c6821f35d',1,'TreeNode::TreeNode()'],['../classTreeNode.html#a8e38dd591d8801d7ee3a7dbad90c67fc',1,'TreeNode::TreeNode(const FrameInfo &frame)'],['../classTreeNode.html#ab9f00f5253d56461bb2d420fd639c5ae',1,'TreeNode::TreeNode(const SignalInfo &signal)']]] +]; diff --git a/docs/html/search/mag_sel.svg b/docs/html/search/mag_sel.svg new file mode 100644 index 0000000..03626f6 --- /dev/null +++ b/docs/html/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/html/search/nomatches.html b/docs/html/search/nomatches.html new file mode 100644 index 0000000..2b9360b --- /dev/null +++ b/docs/html/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/docs/html/search/pages_0.html b/docs/html/search/pages_0.html new file mode 100644 index 0000000..1981712 --- /dev/null +++ b/docs/html/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/pages_0.js b/docs/html/search/pages_0.js new file mode 100644 index 0000000..10cf524 --- /dev/null +++ b/docs/html/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['dbc_20parser_20and_20runtime_20decode_20module_20documentation_0',['DBC Parser and Runtime Decode Module Documentation',['../md_README.html',1,'']]] +]; diff --git a/docs/html/search/search.css b/docs/html/search/search.css new file mode 100644 index 0000000..648a792 --- /dev/null +++ b/docs/html/search/search.css @@ -0,0 +1,263 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 19px; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/docs/html/search/search.js b/docs/html/search/search.js new file mode 100644 index 0000000..607f4e1 --- /dev/null +++ b/docs/html/search/search.js @@ -0,0 +1,802 @@ +/* + @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 convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var width = 400; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + parent.document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + parent.searchBox.CloseResultsWindow(); + parent.document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_0.js b/docs/html/search/variables_0.js new file mode 100644 index 0000000..b7fd3e2 --- /dev/null +++ b/docs/html/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['byteorder_0',['byteOrder',['../structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d',1,'DecodeSignal']]] +]; diff --git a/docs/html/search/variables_1.html b/docs/html/search/variables_1.html new file mode 100644 index 0000000..5f8e440 --- /dev/null +++ b/docs/html/search/variables_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_1.js b/docs/html/search/variables_1.js new file mode 100644 index 0000000..ec3952d --- /dev/null +++ b/docs/html/search/variables_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['canid_0',['canId',['../structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4',1,'RawCanFrame::canId()'],['../structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf',1,'DecodeFrame::canId()'],['../structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e',1,'FrameInfo::canId()']]], + ['comment_1',['comment',['../structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473',1,'DecodeSignal::comment()'],['../structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22',1,'DecodeFrame::comment()'],['../structFrameInfo.html#ace75121294f9d89b762080ab5643293c',1,'FrameInfo::comment()'],['../structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5',1,'SignalInfo::comment()']]] +]; diff --git a/docs/html/search/variables_2.html b/docs/html/search/variables_2.html new file mode 100644 index 0000000..77a7f48 --- /dev/null +++ b/docs/html/search/variables_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_2.js b/docs/html/search/variables_2.js new file mode 100644 index 0000000..862409f --- /dev/null +++ b/docs/html/search/variables_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['data_0',['data',['../structRawCanFrame.html#a0acb487612104c99c9907344c035df83',1,'RawCanFrame']]], + ['definition_1',['definition',['../structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7',1,'DecodedSignalValue::definition()'],['../structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c',1,'DecodedFrameValue::definition()']]], + ['dlc_2',['dlc',['../structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060',1,'DecodeFrame::dlc()'],['../structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9',1,'FrameInfo::dlc()']]] +]; diff --git a/docs/html/search/variables_3.html b/docs/html/search/variables_3.html new file mode 100644 index 0000000..3ee62ba --- /dev/null +++ b/docs/html/search/variables_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_3.js b/docs/html/search/variables_3.js new file mode 100644 index 0000000..ac972b6 --- /dev/null +++ b/docs/html/search/variables_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['factor_0',['factor',['../structDecodeSignal.html#a428c39913a366a8476dd291061354391',1,'DecodeSignal::factor()'],['../structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499',1,'SignalInfo::factor()']]], + ['frames_1',['frames',['../structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b',1,'DbcDatabase']]] +]; diff --git a/docs/html/search/variables_4.html b/docs/html/search/variables_4.html new file mode 100644 index 0000000..640713f --- /dev/null +++ b/docs/html/search/variables_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_4.js b/docs/html/search/variables_4.js new file mode 100644 index 0000000..34587db --- /dev/null +++ b/docs/html/search/variables_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['haspgn_0',['hasPgn',['../structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d',1,'DecodeFrame::hasPgn()'],['../structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d',1,'FrameInfo::hasPgn()']]] +]; diff --git a/docs/html/search/variables_5.html b/docs/html/search/variables_5.html new file mode 100644 index 0000000..7b2ba97 --- /dev/null +++ b/docs/html/search/variables_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_5.js b/docs/html/search/variables_5.js new file mode 100644 index 0000000..b82eca0 --- /dev/null +++ b/docs/html/search/variables_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['isextended_0',['isExtended',['../structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7',1,'RawCanFrame::isExtended()'],['../structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41',1,'DecodeFrame::isExtended()'],['../structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf',1,'FrameInfo::isExtended()']]], + ['islittleendian_1',['isLittleEndian',['../structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c',1,'SignalInfo']]], + ['issigned_2',['isSigned',['../structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f',1,'SignalInfo']]] +]; diff --git a/docs/html/search/variables_6.html b/docs/html/search/variables_6.html new file mode 100644 index 0000000..fb1de8f --- /dev/null +++ b/docs/html/search/variables_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_6.js b/docs/html/search/variables_6.js new file mode 100644 index 0000000..12aa6af --- /dev/null +++ b/docs/html/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['length_0',['length',['../structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb',1,'DecodeSignal::length()'],['../structSignalInfo.html#a1008b5201f71848177217bd52fb84baa',1,'SignalInfo::length()']]] +]; diff --git a/docs/html/search/variables_7.html b/docs/html/search/variables_7.html new file mode 100644 index 0000000..cf8dcf4 --- /dev/null +++ b/docs/html/search/variables_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_7.js b/docs/html/search/variables_7.js new file mode 100644 index 0000000..4b85df7 --- /dev/null +++ b/docs/html/search/variables_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['maximum_0',['maximum',['../structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7',1,'DecodeSignal::maximum()'],['../structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52',1,'SignalInfo::maximum()']]], + ['minimum_1',['minimum',['../structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25',1,'DecodeSignal::minimum()'],['../structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b',1,'SignalInfo::minimum()']]] +]; diff --git a/docs/html/search/variables_8.html b/docs/html/search/variables_8.html new file mode 100644 index 0000000..88cbb01 --- /dev/null +++ b/docs/html/search/variables_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_8.js b/docs/html/search/variables_8.js new file mode 100644 index 0000000..53c98f7 --- /dev/null +++ b/docs/html/search/variables_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['name_0',['name',['../structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780',1,'DecodeSignal::name()'],['../structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579',1,'DecodeFrame::name()'],['../structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb',1,'FrameInfo::name()'],['../structSignalInfo.html#a379e422a00cad56f896cacf60455b088',1,'SignalInfo::name()']]] +]; diff --git a/docs/html/search/variables_9.html b/docs/html/search/variables_9.html new file mode 100644 index 0000000..36c49bd --- /dev/null +++ b/docs/html/search/variables_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_9.js b/docs/html/search/variables_9.js new file mode 100644 index 0000000..c896e33 --- /dev/null +++ b/docs/html/search/variables_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['offset_0',['offset',['../structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74',1,'DecodeSignal::offset()'],['../structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e',1,'SignalInfo::offset()']]] +]; diff --git a/docs/html/search/variables_a.html b/docs/html/search/variables_a.html new file mode 100644 index 0000000..0005c6a --- /dev/null +++ b/docs/html/search/variables_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_a.js b/docs/html/search/variables_a.js new file mode 100644 index 0000000..3195ea0 --- /dev/null +++ b/docs/html/search/variables_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['pgn_0',['pgn',['../structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23',1,'DecodeFrame::pgn()'],['../structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943',1,'FrameInfo::pgn()']]], + ['physicalvalue_1',['physicalValue',['../structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978',1,'DecodedSignalValue']]], + ['public_2',['public',['../structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8',1,'DecodedFrameValue::public()'],['../structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14',1,'DecodeFrame::public()'],['../structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084',1,'FrameInfo::public()']]] +]; diff --git a/docs/html/search/variables_b.html b/docs/html/search/variables_b.html new file mode 100644 index 0000000..757c068 --- /dev/null +++ b/docs/html/search/variables_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_b.js b/docs/html/search/variables_b.js new file mode 100644 index 0000000..4be5336 --- /dev/null +++ b/docs/html/search/variables_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['rawvalue_0',['rawValue',['../structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec',1,'DecodedSignalValue']]], + ['receivers_1',['receivers',['../structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa',1,'DecodeSignal::receivers()'],['../structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3',1,'SignalInfo::receivers()']]] +]; diff --git a/docs/html/search/variables_c.html b/docs/html/search/variables_c.html new file mode 100644 index 0000000..451a136 --- /dev/null +++ b/docs/html/search/variables_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_c.js b/docs/html/search/variables_c.js new file mode 100644 index 0000000..95f24d0 --- /dev/null +++ b/docs/html/search/variables_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['startbit_0',['startBit',['../structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d',1,'DecodeSignal::startBit()'],['../structSignalInfo.html#ace290724f9801521609aedaa946d61f1',1,'SignalInfo::startBit()']]] +]; diff --git a/docs/html/search/variables_d.html b/docs/html/search/variables_d.html new file mode 100644 index 0000000..aea4286 --- /dev/null +++ b/docs/html/search/variables_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_d.js b/docs/html/search/variables_d.js new file mode 100644 index 0000000..9f0de08 --- /dev/null +++ b/docs/html/search/variables_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['transmitter_0',['transmitter',['../structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9',1,'DecodeFrame::transmitter()'],['../structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8',1,'FrameInfo::transmitter()']]] +]; diff --git a/docs/html/search/variables_e.html b/docs/html/search/variables_e.html new file mode 100644 index 0000000..ec3793e --- /dev/null +++ b/docs/html/search/variables_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_e.js b/docs/html/search/variables_e.js new file mode 100644 index 0000000..1917cda --- /dev/null +++ b/docs/html/search/variables_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['unit_0',['unit',['../structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092',1,'DecodeSignal::unit()'],['../structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01',1,'SignalInfo::unit()']]] +]; diff --git a/docs/html/search/variables_f.html b/docs/html/search/variables_f.html new file mode 100644 index 0000000..ee82fce --- /dev/null +++ b/docs/html/search/variables_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/docs/html/search/variables_f.js b/docs/html/search/variables_f.js new file mode 100644 index 0000000..e8ddaf7 --- /dev/null +++ b/docs/html/search/variables_f.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['valid_0',['valid',['../structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686',1,'DecodedSignalValue::valid()'],['../structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0',1,'DecodedFrameValue::valid()']]], + ['valuetype_1',['valueType',['../structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8',1,'DecodeSignal']]] +]; diff --git a/docs/html/signal__info_8h.html b/docs/html/signal__info_8h.html index f41b4db..e19351b 100644 --- a/docs/html/signal__info_8h.html +++ b/docs/html/signal__info_8h.html @@ -5,10 +5,17 @@ -DBC framework: signal_info.h File Reference +DBC Framework: signal_info.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    @@ -70,9 +109,13 @@ Classes

    Definition in file signal_info.h.

    + - + diff --git a/docs/html/signal__info_8h.js b/docs/html/signal__info_8h.js new file mode 100644 index 0000000..5b565e1 --- /dev/null +++ b/docs/html/signal__info_8h.js @@ -0,0 +1,4 @@ +var signal__info_8h = +[ + [ "SignalInfo", "structSignalInfo.html", "structSignalInfo" ] +]; \ No newline at end of file diff --git a/docs/html/signal__info_8h_source.html b/docs/html/signal__info_8h_source.html index abdeb3e..95e3958 100644 --- a/docs/html/signal__info_8h_source.html +++ b/docs/html/signal__info_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: signal_info.h Source File +DBC Framework: signal_info.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,62 +35,79 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    signal_info.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file signal_info.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef SIGNAL_INFO_H
    13#define SIGNAL_INFO_H
    14
    15#include <string>
    16#include <vector>
    17#include <cstdint>
    -
    18
    -
    19/**
    -
    20 * @brief Describes one signal inside a DBC frame.
    -
    21 */
    +
    18
    22struct SignalInfo {
    -
    23 std::string name; /**< Signal name. */
    -
    24 std::uint32_t startBit; /**< Start bit in DBC notation. */
    -
    25 std::uint32_t length; /**< Signal length in bits. */
    -
    26 bool isLittleEndian; /**< true for Intel, false for Motorola. */
    -
    27 bool isSigned; /**< true if signal is signed. */
    -
    28 double factor; /**< Scaling factor. */
    -
    29 double offset; /**< Physical offset. */
    -
    30 double minimum; /**< Minimum physical value. */
    -
    31 double maximum; /**< Maximum physical value. */
    -
    32 std::string unit; /**< Physical unit. */
    -
    33 std::vector<std::string> receivers; /**< Signal receivers. */
    -
    34 std::string comment; /**< Optional signal comment. */
    -
    35
    - +
    23 std::string name;
    +
    24 std::uint32_t startBit;
    +
    25 std::uint32_t length;
    + +
    27 bool isSigned;
    +
    28 double factor;
    +
    29 double offset;
    +
    30 double minimum;
    +
    31 double maximum;
    +
    32 std::string unit;
    +
    33 std::vector<std::string> receivers;
    +
    34 std::string comment;
    +
    37 : name()
    38 , startBit (0U)
    39 , length (0U)
    @@ -105,7 +130,6 @@
    std::vector< std::string > receivers
    Definition: signal_info.h:33
    std::string name
    Definition: signal_info.h:23
    bool isSigned
    Definition: signal_info.h:27
    -
    double offset
    Definition: signal_info.h:29
    std::string comment
    Definition: signal_info.h:34
    std::uint32_t startBit
    Definition: signal_info.h:24
    @@ -114,9 +138,13 @@
    double factor
    Definition: signal_info.h:28
    bool isLittleEndian
    Definition: signal_info.h:26
    +
    - + diff --git a/docs/html/structDbcDatabase-members.html b/docs/html/structDbcDatabase-members.html index ad6b28c..ec9b049 100644 --- a/docs/html/structDbcDatabase-members.html +++ b/docs/html/structDbcDatabase-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DbcDatabase Member List
    @@ -53,9 +91,12 @@
    framesDbcDatabase
    + - + diff --git a/docs/html/structDbcDatabase.html b/docs/html/structDbcDatabase.html index 2068a72..3154d21 100644 --- a/docs/html/structDbcDatabase.html +++ b/docs/html/structDbcDatabase.html @@ -5,10 +5,17 @@ -DBC framework: DbcDatabase Struct Reference +DBC Framework: DbcDatabase Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + @@ -90,9 +128,13 @@ Public Attributes
  • dbc_database.h
  • + - + diff --git a/docs/html/structDbcDatabase.js b/docs/html/structDbcDatabase.js new file mode 100644 index 0000000..43ad455 --- /dev/null +++ b/docs/html/structDbcDatabase.js @@ -0,0 +1,4 @@ +var structDbcDatabase = +[ + [ "frames", "structDbcDatabase.html#a2cade5d0234ee816132127542f8c612b", null ] +]; \ No newline at end of file diff --git a/docs/html/structDecodeDatabase-members.html b/docs/html/structDecodeDatabase-members.html index cde9ba8..6c0bf65 100644 --- a/docs/html/structDecodeDatabase-members.html +++ b/docs/html/structDecodeDatabase-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DecodeDatabase Member List
    @@ -51,12 +89,15 @@

    This is the complete list of members for DecodeDatabase, including all inherited members.

    - - + +
    frameIndexByKeyDecodeDatabase
    framesDecodeDatabase
    frameIndexByKey (defined in DecodeDatabase)DecodeDatabase
    frames (defined in DecodeDatabase)DecodeDatabase
    + - + diff --git a/docs/html/structDecodeDatabase.html b/docs/html/structDecodeDatabase.html index 0ac4fbd..d5057a5 100644 --- a/docs/html/structDecodeDatabase.html +++ b/docs/html/structDecodeDatabase.html @@ -5,10 +5,17 @@ -DBC framework: DecodeDatabase Struct Reference +DBC Framework: DecodeDatabase Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    Public Attributes | @@ -69,24 +107,6 @@ Public Attributes

    Definition at line 132 of file decode_database.h.

    Member Data Documentation

    - -

    ◆ frameIndexByKey

    - -
    -
    - - - - -
    std::unordered_map<FrameKey, std::size_t, FrameKeyHasher> DecodeDatabase::frameIndexByKey
    -
    - -

    Definition at line 134 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcDecoder::FindFrame().

    - -
    -

    ◆ frames

    @@ -101,7 +121,21 @@ Public Attributes

    Definition at line 133 of file decode_database.h.

    -

    Referenced by DbcDecodeBuilder::Build(), DbcDecoder::FindFrame(), and main().

    +
    +
    + +

    ◆ frameIndexByKey

    + +
    +
    + + + + +
    std::unordered_map<FrameKey, std::size_t, FrameKeyHasher> DecodeDatabase::frameIndexByKey
    +
    + +

    Definition at line 134 of file decode_database.h.

    @@ -109,9 +143,13 @@ Public Attributes
  • decode_database.h
  • + - + diff --git a/docs/html/structDecodeFrame-members.html b/docs/html/structDecodeFrame-members.html index 4464859..0866aab 100644 --- a/docs/html/structDecodeFrame-members.html +++ b/docs/html/structDecodeFrame-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + + + - + diff --git a/docs/html/structDecodeFrame.html b/docs/html/structDecodeFrame.html index dec3d42..2b943d4 100644 --- a/docs/html/structDecodeFrame.html +++ b/docs/html/structDecodeFrame.html @@ -5,10 +5,17 @@ -DBC framework: DecodeFrame Struct Reference +DBC Framework: DecodeFrame Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,26 +35,55 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DecodeFrame Struct Reference
    @@ -58,11 +95,6 @@

    #include <decode_database.h>

    - - - -

    -Public Member Functions

     DecodeFrame ()
     
    @@ -81,8 +113,8 @@ Public Attributes - - + +

    Public Attributes

    std::string name
     
    std::string comment
     
    std::vector< DecodeSignalsignals
     
    std::vector< DecodeSignalpublic
     

    Detailed Description

    Runtime-ready frame definition.

    @@ -117,6 +149,25 @@ Public Attributes

    Member Data Documentation

    + +

    ◆ name

    + +
    +
    + + + + +
    std::string DecodeFrame::name
    +
    +

    Frame name.

    + +

    Definition at line 73 of file decode_database.h.

    + +

    Referenced by DbcDecodeBuilder::Build().

    + +
    +

    ◆ canId

    @@ -134,63 +185,6 @@ Public Attributes

    Referenced by DbcDecodeBuilder::Build().

    -
    - - -

    ◆ comment

    - -
    -
    - - - - -
    std::string DecodeFrame::comment
    -
    -

    Frame comment.

    - -

    Definition at line 80 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build().

    - -
    -
    - -

    ◆ dlc

    - -
    -
    - - - - -
    std::uint8_t DecodeFrame::dlc
    -
    -

    Payload length.

    - -

    Definition at line 76 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build().

    - -
    -
    - -

    ◆ hasPgn

    - -
    -
    - - - - -
    bool DecodeFrame::hasPgn
    -
    -

    true if PGN is valid.

    - -

    Definition at line 78 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build().

    -
    @@ -212,22 +206,22 @@ Public Attributes - -

    ◆ name

    + +

    ◆ dlc

    - +
    std::string DecodeFrame::namestd::uint8_t DecodeFrame::dlc
    -

    Frame name.

    +

    Payload length.

    -

    Definition at line 73 of file decode_database.h.

    +

    Definition at line 76 of file decode_database.h.

    -

    Referenced by DbcDecodeBuilder::Build(), and PrintDecodedFrame().

    +

    Referenced by DbcDecodeBuilder::Build().

    @@ -250,22 +244,22 @@ Public Attributes - -

    ◆ signals

    + +

    ◆ hasPgn

    - +
    std::vector<DecodeSignal> DecodeFrame::signalsbool DecodeFrame::hasPgn
    -

    Signal definitions.

    +

    true if PGN is valid.

    -

    Definition at line 81 of file decode_database.h.

    +

    Definition at line 78 of file decode_database.h.

    -

    Referenced by DbcDecodeBuilder::Build(), and DbcDecoder::Decode().

    +

    Referenced by DbcDecodeBuilder::Build().

    @@ -286,15 +280,55 @@ Public Attributes

    Referenced by DbcDecodeBuilder::Build().

    + + + +

    ◆ comment

    + +
    +
    + + + + +
    std::string DecodeFrame::comment
    +
    +

    Frame comment.

    + +

    Definition at line 80 of file decode_database.h.

    + +

    Referenced by DbcDecodeBuilder::Build().

    + +
    +
    + +

    ◆ public

    + +
    +
    + + + + +
    std::vector<DecodeSignal> DecodeFrame::public
    +
    +

    Signal definitions.

    + +

    Definition at line 81 of file decode_database.h.

    +

    The documentation for this struct was generated from the following file: + - + diff --git a/docs/html/structDecodeFrame.js b/docs/html/structDecodeFrame.js new file mode 100644 index 0000000..a662af7 --- /dev/null +++ b/docs/html/structDecodeFrame.js @@ -0,0 +1,12 @@ +var structDecodeFrame = +[ + [ "name", "structDecodeFrame.html#aa0a7f8fd5bfde2148dfd0d838328f579", null ], + [ "canId", "structDecodeFrame.html#a52e10215388db7df8b541b9d9909edcf", null ], + [ "isExtended", "structDecodeFrame.html#a3ee2348d781f8f15aaf87e8dcf57ec41", null ], + [ "dlc", "structDecodeFrame.html#a51111ac13988be372d5673d12cf3e060", null ], + [ "pgn", "structDecodeFrame.html#a1d3c54055c0cbceb73adf551f7067f23", null ], + [ "hasPgn", "structDecodeFrame.html#a2551102670c4a540fced4c71da0b369d", null ], + [ "transmitter", "structDecodeFrame.html#ad78241dc40c793aabb8495b6989b81a9", null ], + [ "comment", "structDecodeFrame.html#a25819ef907a32391af5c9f7cae9cdb22", null ], + [ "public", "structDecodeFrame.html#a7f4e71bbdec3f424b625e724e3dfbf14", null ] +]; \ No newline at end of file diff --git a/docs/html/structDecodeSignal-members.html b/docs/html/structDecodeSignal-members.html index 10a0df2..f6fc09b 100644 --- a/docs/html/structDecodeSignal-members.html +++ b/docs/html/structDecodeSignal-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DecodeSignal Member List
    @@ -53,7 +91,7 @@ - + @@ -65,9 +103,12 @@
    byteOrderDecodeSignal
    commentDecodeSignal
    DecodeSignal()DecodeSignalinline
    DecodeSignal() (defined in DecodeSignal)DecodeSignalinline
    factorDecodeSignal
    lengthDecodeSignal
    maximumDecodeSignal
    unitDecodeSignal
    valueTypeDecodeSignal
    + - + diff --git a/docs/html/structDecodeSignal.html b/docs/html/structDecodeSignal.html index 6163042..451312a 100644 --- a/docs/html/structDecodeSignal.html +++ b/docs/html/structDecodeSignal.html @@ -5,10 +5,17 @@ -DBC framework: DecodeSignal Struct Reference +DBC Framework: DecodeSignal Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,26 +35,55 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DecodeSignal Struct Reference
    @@ -58,11 +95,6 @@

    #include <decode_database.h>

    - - - -

    -Public Member Functions

     DecodeSignal ()
     
    @@ -123,120 +155,6 @@ Public Attributes

    Member Data Documentation

    - -

    ◆ byteOrder

    - -
    -
    -

    Public Attributes

    std::string name
    - - - -
    ByteOrder DecodeSignal::byteOrder
    -
    -

    Intel or Motorola.

    - -

    Definition at line 43 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcDecoder::ExtractUnsigned().

    - -
    -
    - -

    ◆ comment

    - -
    -
    - - - - -
    std::string DecodeSignal::comment
    -
    -

    Comment.

    - -

    Definition at line 51 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build().

    - -
    -
    - -

    ◆ factor

    - -
    -
    - - - - -
    double DecodeSignal::factor
    -
    -

    Scaling factor.

    - -

    Definition at line 45 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcDecoder::Decode().

    - -
    -
    - -

    ◆ length

    - -
    -
    - - - - -
    std::uint32_t DecodeSignal::length
    -
    -

    Signal length in bits.

    - -

    Definition at line 42 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), DbcDecoder::Decode(), and DbcDecoder::ExtractUnsigned().

    - -
    -
    - -

    ◆ maximum

    - -
    -
    - - - - -
    double DecodeSignal::maximum
    -
    -

    Maximum physical value.

    - -

    Definition at line 48 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build().

    - -
    -
    - -

    ◆ minimum

    - -
    -
    - - - - -
    double DecodeSignal::minimum
    -
    -

    Minimum physical value.

    - -

    Definition at line 47 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build().

    - -
    -

    ◆ name

    @@ -252,44 +170,6 @@ Public Attributes

    Definition at line 40 of file decode_database.h.

    -

    Referenced by DbcDecodeBuilder::Build(), and PrintDecodedFrame().

    - - - - -

    ◆ offset

    - -
    -
    - - - - -
    double DecodeSignal::offset
    -
    -

    Physical offset.

    - -

    Definition at line 46 of file decode_database.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcDecoder::Decode().

    - -
    -
    - -

    ◆ receivers

    - -
    -
    - - - - -
    std::vector<std::string> DecodeSignal::receivers
    -
    -

    Receivers.

    - -

    Definition at line 50 of file decode_database.h.

    -

    Referenced by DbcDecodeBuilder::Build().

    @@ -309,26 +189,45 @@ Public Attributes

    Definition at line 41 of file decode_database.h.

    -

    Referenced by DbcDecodeBuilder::Build(), and DbcDecoder::ExtractUnsigned().

    +

    Referenced by DbcDecodeBuilder::Build().

    - -

    ◆ unit

    + +

    ◆ length

    - +
    std::string DecodeSignal::unitstd::uint32_t DecodeSignal::length
    -

    Physical unit.

    +

    Signal length in bits.

    -

    Definition at line 49 of file decode_database.h.

    +

    Definition at line 42 of file decode_database.h.

    -

    Referenced by DbcDecodeBuilder::Build(), and PrintDecodedFrame().

    +

    Referenced by DbcDecodeBuilder::Build().

    + +
    +
    + +

    ◆ byteOrder

    + +
    +
    + + + + +
    ByteOrder DecodeSignal::byteOrder
    +
    +

    Intel or Motorola.

    + +

    Definition at line 43 of file decode_database.h.

    + +

    Referenced by DbcDecodeBuilder::Build().

    @@ -347,7 +246,126 @@ Public Attributes

    Definition at line 44 of file decode_database.h.

    -

    Referenced by DbcDecodeBuilder::Build(), and DbcDecoder::Decode().

    +

    Referenced by DbcDecoder::Decode().

    + + + + +

    ◆ factor

    + +
    +
    + + + + +
    double DecodeSignal::factor
    +
    +

    Scaling factor.

    + +

    Definition at line 45 of file decode_database.h.

    + +
    +
    + +

    ◆ offset

    + +
    +
    + + + + +
    double DecodeSignal::offset
    +
    +

    Physical offset.

    + +

    Definition at line 46 of file decode_database.h.

    + +
    +
    + +

    ◆ minimum

    + +
    +
    + + + + +
    double DecodeSignal::minimum
    +
    +

    Minimum physical value.

    + +

    Definition at line 47 of file decode_database.h.

    + +
    +
    + +

    ◆ maximum

    + +
    +
    + + + + +
    double DecodeSignal::maximum
    +
    +

    Maximum physical value.

    + +

    Definition at line 48 of file decode_database.h.

    + +
    +
    + +

    ◆ unit

    + +
    +
    + + + + +
    std::string DecodeSignal::unit
    +
    +

    Physical unit.

    + +

    Definition at line 49 of file decode_database.h.

    + +
    +
    + +

    ◆ receivers

    + +
    +
    + + + + +
    std::vector<std::string> DecodeSignal::receivers
    +
    +

    Receivers.

    + +

    Definition at line 50 of file decode_database.h.

    + +
    +
    + +

    ◆ comment

    + +
    +
    + + + + +
    std::string DecodeSignal::comment
    +
    +

    Comment.

    + +

    Definition at line 51 of file decode_database.h.

    @@ -355,9 +373,13 @@ Public Attributes
  • decode_database.h
  • + - + diff --git a/docs/html/structDecodeSignal.js b/docs/html/structDecodeSignal.js new file mode 100644 index 0000000..10381c9 --- /dev/null +++ b/docs/html/structDecodeSignal.js @@ -0,0 +1,15 @@ +var structDecodeSignal = +[ + [ "name", "structDecodeSignal.html#a58cf5844f2272a23dcb9687d912e4780", null ], + [ "startBit", "structDecodeSignal.html#aaf5d7527ddf65b6355c2b4f3626df22d", null ], + [ "length", "structDecodeSignal.html#acd4ef5ee30421d117b5756854302debb", null ], + [ "byteOrder", "structDecodeSignal.html#abdc4c4bb4a67a6d61d6ca81e8a52833d", null ], + [ "valueType", "structDecodeSignal.html#a9d37638129263b8902ba5be59baf39a8", null ], + [ "factor", "structDecodeSignal.html#a428c39913a366a8476dd291061354391", null ], + [ "offset", "structDecodeSignal.html#a92db637af4e224a0ae70173050dc3f74", null ], + [ "minimum", "structDecodeSignal.html#a0fb84e19a0ab3bd50b6f65c1075ebc25", null ], + [ "maximum", "structDecodeSignal.html#a4a6ba87142a9badbf0ca830e9e709cb7", null ], + [ "unit", "structDecodeSignal.html#a38eed9ca7581423fd8bfbedcffc12092", null ], + [ "receivers", "structDecodeSignal.html#abdbae62a64d2df716bf60c6b67b30eaa", null ], + [ "comment", "structDecodeSignal.html#ae28c905d4a2bc86419c2a8361bfea473", null ] +]; \ No newline at end of file diff --git a/docs/html/structDecodedFrameValue-members.html b/docs/html/structDecodedFrameValue-members.html index 2573264..8bf0a21 100644 --- a/docs/html/structDecodedFrameValue-members.html +++ b/docs/html/structDecodedFrameValue-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DecodedFrameValue Member List
    @@ -51,14 +89,17 @@

    This is the complete list of members for DecodedFrameValue, including all inherited members.

    - + - +
    DecodedFrameValue()DecodedFrameValueinline
    DecodedFrameValue() (defined in DecodedFrameValue)DecodedFrameValueinline
    definitionDecodedFrameValue
    signalsDecodedFrameValue
    publicDecodedFrameValue
    validDecodedFrameValue
    + - + diff --git a/docs/html/structDecodedFrameValue.html b/docs/html/structDecodedFrameValue.html index 2ce38f5..8c4da38 100644 --- a/docs/html/structDecodedFrameValue.html +++ b/docs/html/structDecodedFrameValue.html @@ -5,10 +5,17 @@ -DBC framework: DecodedFrameValue Struct Reference +DBC Framework: DecodedFrameValue Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,26 +35,55 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DecodedFrameValue Struct Reference
    @@ -58,17 +95,12 @@

    #include <dbc_decoder.h>

    - - - -

    -Public Member Functions

     DecodedFrameValue ()
     
    - - + +

    Public Attributes

    const DecodeFramedefinition
     
    std::vector< DecodedSignalValuesignals
     
    std::vector< DecodedSignalValuepublic
     
    bool valid
     
    @@ -120,18 +152,18 @@ Public Attributes

    Definition at line 56 of file dbc_decoder.h.

    -

    Referenced by DbcDecoder::Decode(), and PrintDecodedFrame().

    +

    Referenced by DbcDecoder::Decode().

    - -

    ◆ signals

    + +

    ◆ public

    - +
    std::vector<DecodedSignalValue> DecodedFrameValue::signalsstd::vector<DecodedSignalValue> DecodedFrameValue::public
    @@ -139,8 +171,6 @@ Public Attributes

    Definition at line 57 of file dbc_decoder.h.

    -

    Referenced by DbcDecoder::Decode(), and PrintDecodedFrame().

    -
    @@ -158,7 +188,7 @@ Public Attributes

    Definition at line 58 of file dbc_decoder.h.

    -

    Referenced by DbcDecoder::Decode(), and PrintDecodedFrame().

    +

    Referenced by DbcDecoder::Decode().

    @@ -166,9 +196,13 @@ Public Attributes
  • dbc_decoder.h
  • + - + diff --git a/docs/html/structDecodedFrameValue.js b/docs/html/structDecodedFrameValue.js new file mode 100644 index 0000000..6e26145 --- /dev/null +++ b/docs/html/structDecodedFrameValue.js @@ -0,0 +1,6 @@ +var structDecodedFrameValue = +[ + [ "definition", "structDecodedFrameValue.html#a60dda1cc352d2c8087f0bdbc81dd266c", null ], + [ "public", "structDecodedFrameValue.html#adae123ac7fbb4a5c314b64b01109f4a8", null ], + [ "valid", "structDecodedFrameValue.html#a4f51c31110dba1f73a763c596372beb0", null ] +]; \ No newline at end of file diff --git a/docs/html/structDecodedSignalValue-members.html b/docs/html/structDecodedSignalValue-members.html index d0eaab6..fedfc2d 100644 --- a/docs/html/structDecodedSignalValue-members.html +++ b/docs/html/structDecodedSignalValue-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DecodedSignalValue Member List
    @@ -51,15 +89,18 @@

    This is the complete list of members for DecodedSignalValue, including all inherited members.

    - +
    DecodedSignalValue()DecodedSignalValueinline
    DecodedSignalValue() (defined in DecodedSignalValue)DecodedSignalValueinline
    definitionDecodedSignalValue
    physicalValueDecodedSignalValue
    rawValueDecodedSignalValue
    validDecodedSignalValue
    + - + diff --git a/docs/html/structDecodedSignalValue.html b/docs/html/structDecodedSignalValue.html index 0dcf1f8..4b01830 100644 --- a/docs/html/structDecodedSignalValue.html +++ b/docs/html/structDecodedSignalValue.html @@ -5,10 +5,17 @@ -DBC framework: DecodedSignalValue Struct Reference +DBC Framework: DecodedSignalValue Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,26 +35,55 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    DecodedSignalValue Struct Reference
    @@ -58,11 +95,6 @@

    #include <dbc_decoder.h>

    - - - -

    -Public Member Functions

     DecodedSignalValue ()
     
    @@ -122,26 +154,7 @@ Public Attributes

    Definition at line 39 of file dbc_decoder.h.

    -

    Referenced by DbcDecoder::Decode(), and PrintDecodedFrame().

    - - - - -

    ◆ physicalValue

    - -
    -
    -

    Public Attributes

    const DecodeSignaldefinition
    - - - -
    double DecodedSignalValue::physicalValue
    -
    -

    Converted physical value.

    - -

    Definition at line 41 of file dbc_decoder.h.

    - -

    Referenced by DbcDecoder::Decode(), and PrintDecodedFrame().

    +

    Referenced by DbcDecoder::Decode().

    @@ -160,7 +173,22 @@ Public Attributes

    Definition at line 40 of file dbc_decoder.h.

    -

    Referenced by DbcDecoder::Decode(), and PrintDecodedFrame().

    + + + +

    ◆ physicalValue

    + +
    +
    + + + + +
    double DecodedSignalValue::physicalValue
    +
    +

    Converted physical value.

    + +

    Definition at line 41 of file dbc_decoder.h.

    @@ -179,7 +207,7 @@ Public Attributes

    Definition at line 42 of file dbc_decoder.h.

    -

    Referenced by DbcDecoder::Decode(), and PrintDecodedFrame().

    +

    Referenced by DbcDecoder::Decode().

    @@ -187,9 +215,13 @@ Public Attributes
  • dbc_decoder.h
  • + - + diff --git a/docs/html/structDecodedSignalValue.js b/docs/html/structDecodedSignalValue.js new file mode 100644 index 0000000..bbf0127 --- /dev/null +++ b/docs/html/structDecodedSignalValue.js @@ -0,0 +1,7 @@ +var structDecodedSignalValue = +[ + [ "definition", "structDecodedSignalValue.html#acadc3b3bb21dd6b0412d342c7e6b20d7", null ], + [ "rawValue", "structDecodedSignalValue.html#a5138b825940e34689f7b3891627ee9ec", null ], + [ "physicalValue", "structDecodedSignalValue.html#a6847d05b3cb00d5e0f6c611968f57978", null ], + [ "valid", "structDecodedSignalValue.html#aac0ed361af545cde48d0e6f41a859686", null ] +]; \ No newline at end of file diff --git a/docs/html/structFrameInfo-members.html b/docs/html/structFrameInfo-members.html index 03dbb8d..b55daa1 100644 --- a/docs/html/structFrameInfo-members.html +++ b/docs/html/structFrameInfo-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + + + - + diff --git a/docs/html/structFrameInfo.html b/docs/html/structFrameInfo.html index 770acb0..abfd547 100644 --- a/docs/html/structFrameInfo.html +++ b/docs/html/structFrameInfo.html @@ -5,10 +5,17 @@ -DBC framework: FrameInfo Struct Reference +DBC Framework: FrameInfo Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,26 +35,55 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    FrameInfo Struct Reference
    @@ -58,11 +95,6 @@

    #include <frame_info.h>

    - - - -

    -Public Member Functions

     FrameInfo ()
     
    @@ -81,8 +113,8 @@ Public Attributes - - + +

    Public Attributes

    std::string name
     
    std::string comment
     
    std::vector< SignalInfosignals
     
    std::vector< SignalInfopublic
     

    Detailed Description

    Describes one CAN frame from a DBC file.

    @@ -117,6 +149,25 @@ Public Attributes

    Member Data Documentation

    + +

    ◆ name

    + +
    +
    + + + + +
    std::string FrameInfo::name
    +
    +

    Frame name.

    + +

    Definition at line 25 of file frame_info.h.

    + +

    Referenced by DbcDecodeBuilder::Build().

    + +
    +

    ◆ canId

    @@ -132,64 +183,7 @@ Public Attributes

    Definition at line 26 of file frame_info.h.

    -

    Referenced by DbcDecodeBuilder::Build(), DbcParser::ParseFrameLine(), and PrintTree().

    - -
    - - -

    ◆ comment

    - -
    -
    - - - - -
    std::string FrameInfo::comment
    -
    -

    Optional frame comment.

    - -

    Definition at line 32 of file frame_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseCommentLine().

    - -
    -
    - -

    ◆ dlc

    - -
    -
    - - - - -
    std::uint8_t FrameInfo::dlc
    -
    -

    Frame payload length.

    - -

    Definition at line 30 of file frame_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), DbcParser::ParseFrameLine(), and PrintTree().

    - -
    -
    - -

    ◆ hasPgn

    - -
    -
    - - - - -
    bool FrameInfo::hasPgn
    -
    -

    true if PGN was derived.

    - -

    Definition at line 29 of file frame_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), DbcParser::ParseFrameLine(), and PrintTree().

    +

    Referenced by DbcDecodeBuilder::Build().

    @@ -208,26 +202,7 @@ Public Attributes

    Definition at line 27 of file frame_info.h.

    -

    Referenced by DbcDecodeBuilder::Build(), DbcParser::ParseFrameLine(), and PrintTree().

    - - - - -

    ◆ name

    - -
    -
    - - - - -
    std::string FrameInfo::name
    -
    -

    Frame name.

    - -

    Definition at line 25 of file frame_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseFrameLine().

    +

    Referenced by DbcDecodeBuilder::Build().

    @@ -246,26 +221,45 @@ Public Attributes

    Definition at line 28 of file frame_info.h.

    -

    Referenced by DbcDecodeBuilder::Build(), DbcParser::ParseFrameLine(), and PrintTree().

    +

    Referenced by DbcDecodeBuilder::Build().

    - -

    ◆ signals

    + +

    ◆ hasPgn

    - +
    std::vector<SignalInfo> FrameInfo::signalsbool FrameInfo::hasPgn
    -

    Signals contained in the frame.

    +

    true if PGN was derived.

    -

    Definition at line 33 of file frame_info.h.

    +

    Definition at line 29 of file frame_info.h.

    -

    Referenced by DbcTreeBuilder::Build(), DbcDecodeBuilder::Build(), DbcParser::FindSignalByName(), and DbcParser::ParseFile().

    +

    Referenced by DbcDecodeBuilder::Build().

    + +
    +
    + +

    ◆ dlc

    + +
    +
    + + + + +
    std::uint8_t FrameInfo::dlc
    +
    +

    Frame payload length.

    + +

    Definition at line 30 of file frame_info.h.

    + +

    Referenced by DbcDecodeBuilder::Build().

    @@ -284,7 +278,43 @@ Public Attributes

    Definition at line 31 of file frame_info.h.

    -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseFrameLine().

    +

    Referenced by DbcDecodeBuilder::Build().

    + + + + +

    ◆ comment

    + +
    +
    + + + + +
    std::string FrameInfo::comment
    +
    +

    Optional frame comment.

    + +

    Definition at line 32 of file frame_info.h.

    + +

    Referenced by DbcDecodeBuilder::Build().

    + +
    +
    + +

    ◆ public

    + +
    +
    + + + + +
    std::vector<SignalInfo> FrameInfo::public
    +
    +

    Signals contained in the frame.

    + +

    Definition at line 33 of file frame_info.h.

    @@ -292,9 +322,13 @@ Public Attributes
  • frame_info.h
  • + - + diff --git a/docs/html/structFrameInfo.js b/docs/html/structFrameInfo.js new file mode 100644 index 0000000..7a9f055 --- /dev/null +++ b/docs/html/structFrameInfo.js @@ -0,0 +1,12 @@ +var structFrameInfo = +[ + [ "name", "structFrameInfo.html#abb53a7f93ed7abc0ea1ae4a8ccafcdcb", null ], + [ "canId", "structFrameInfo.html#af470b0742c05bfbffc31c51a68f5c05e", null ], + [ "isExtended", "structFrameInfo.html#a34b726afaad2ac5c697fdb2ac070cdaf", null ], + [ "pgn", "structFrameInfo.html#aee518b33f1000bf0b7f6e4a87474c943", null ], + [ "hasPgn", "structFrameInfo.html#a4737a5420213ad4304724e39f3a4e55d", null ], + [ "dlc", "structFrameInfo.html#aa2b198ea0f55e560c123d35e7b3ecab9", null ], + [ "transmitter", "structFrameInfo.html#a92749ec3798d4211a505860fb389a9e8", null ], + [ "comment", "structFrameInfo.html#ace75121294f9d89b762080ab5643293c", null ], + [ "public", "structFrameInfo.html#a3f7e25d67ddae22f2ed50823a5a26084", null ] +]; \ No newline at end of file diff --git a/docs/html/structFrameKey-members.html b/docs/html/structFrameKey-members.html index 7310bfc..010c2c0 100644 --- a/docs/html/structFrameKey-members.html +++ b/docs/html/structFrameKey-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    FrameKey Member List
    @@ -51,15 +89,18 @@

    This is the complete list of members for FrameKey, including all inherited members.

    - - - - - + + + + +
    canIdFrameKey
    FrameKey()FrameKeyinline
    FrameKey(std::uint32_t id, bool extended)FrameKeyinline
    isExtendedFrameKey
    operator==(const FrameKey &other) constFrameKeyinline
    canId (defined in FrameKey)FrameKey
    FrameKey() (defined in FrameKey)FrameKeyinline
    FrameKey(std::uint32_t id, bool extended) (defined in FrameKey)FrameKeyinline
    isExtended (defined in FrameKey)FrameKey
    operator==(const FrameKey &other) const (defined in FrameKey)FrameKeyinline
    + - + diff --git a/docs/html/structFrameKey.html b/docs/html/structFrameKey.html index a9e39a4..015887e 100644 --- a/docs/html/structFrameKey.html +++ b/docs/html/structFrameKey.html @@ -5,10 +5,17 @@ -DBC framework: FrameKey Struct Reference +DBC Framework: FrameKey Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    Public Member Functions | @@ -60,8 +98,6 @@ - - @@ -171,8 +207,6 @@ Public Attributes

    Definition at line 113 of file decode_database.h.

    -

    References canId, and isExtended.

    -

    Member Data Documentation

    @@ -190,8 +224,6 @@ Public Attributes

    Definition at line 100 of file decode_database.h.

    -

    Referenced by FrameKeyHasher::operator()(), and operator==().

    - @@ -208,17 +240,19 @@ Public Attributes

    Definition at line 101 of file decode_database.h.

    -

    Referenced by FrameKeyHasher::operator()(), and operator==().

    -
    The documentation for this struct was generated from the following file: + - + diff --git a/docs/html/structFrameKeyHasher-members.html b/docs/html/structFrameKeyHasher-members.html index 4ad2989..1585d35 100644 --- a/docs/html/structFrameKeyHasher-members.html +++ b/docs/html/structFrameKeyHasher-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ @@ -27,23 +35,53 @@ - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    FrameKeyHasher Member List
    @@ -51,11 +89,14 @@

    This is the complete list of members for FrameKeyHasher, including all inherited members.

    Public Member Functions

     FrameKey ()
     
     FrameKey (std::uint32_t id, bool extended)
     
    bool operator== (const FrameKey &other) const
    -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    - +
    operator()(const FrameKey &key) constFrameKeyHasherinline
    operator()(const FrameKey &key) const (defined in FrameKeyHasher)FrameKeyHasherinline
    +
    - + diff --git a/docs/html/structFrameKeyHasher.html b/docs/html/structFrameKeyHasher.html index 9919ed5..e22e46e 100644 --- a/docs/html/structFrameKeyHasher.html +++ b/docs/html/structFrameKeyHasher.html @@ -5,10 +5,17 @@ -DBC framework: FrameKeyHasher Struct Reference +DBC Framework: FrameKeyHasher Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    Public Member Functions | @@ -93,17 +131,19 @@ Public Member Functions

    Definition at line 122 of file decode_database.h.

    -

    References FrameKey::canId, and FrameKey::isExtended.

    -

    The documentation for this struct was generated from the following file:
    + - + diff --git a/docs/html/structRawCanFrame-members.html b/docs/html/structRawCanFrame-members.html index 1d9410a..e3694ff 100644 --- a/docs/html/structRawCanFrame-members.html +++ b/docs/html/structRawCanFrame-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    RawCanFrame Member List
    @@ -54,11 +92,14 @@ canIdRawCanFrame dataRawCanFrame isExtendedRawCanFrame - RawCanFrame()RawCanFrameinline + RawCanFrame() (defined in RawCanFrame)RawCanFrameinline
    + - + diff --git a/docs/html/structRawCanFrame.html b/docs/html/structRawCanFrame.html index 863c3ef..3a7415f 100644 --- a/docs/html/structRawCanFrame.html +++ b/docs/html/structRawCanFrame.html @@ -5,10 +5,17 @@ -DBC framework: RawCanFrame Struct Reference +DBC Framework: RawCanFrame Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,26 +35,55 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    RawCanFrame Struct Reference
    @@ -58,11 +95,6 @@

    #include <dbc_decoder.h>

    - - - -

    -Public Member Functions

     RawCanFrame ()
     
    @@ -120,26 +152,7 @@ Public Attributes

    Definition at line 24 of file dbc_decoder.h.

    -

    Referenced by DbcDecoder::Decode(), and main().

    - - - - -

    ◆ data

    - -
    -
    -

    Public Attributes

    std::uint32_t canId
    - - - -
    std::vector<std::uint8_t> RawCanFrame::data
    -
    -

    Payload bytes.

    - -

    Definition at line 26 of file dbc_decoder.h.

    - -

    Referenced by DbcDecoder::Decode(), and main().

    +

    Referenced by DbcDecoder::Decode().

    @@ -158,7 +171,26 @@ Public Attributes

    Definition at line 25 of file dbc_decoder.h.

    -

    Referenced by DbcDecoder::Decode(), and main().

    +

    Referenced by DbcDecoder::Decode().

    + + + + +

    ◆ data

    + +
    +
    + + + + +
    std::vector<std::uint8_t> RawCanFrame::data
    +
    +

    Payload bytes.

    + +

    Definition at line 26 of file dbc_decoder.h.

    + +

    Referenced by DbcDecoder::Decode().

    @@ -166,9 +198,13 @@ Public Attributes
  • dbc_decoder.h
  • + - + diff --git a/docs/html/structRawCanFrame.js b/docs/html/structRawCanFrame.js new file mode 100644 index 0000000..b430f42 --- /dev/null +++ b/docs/html/structRawCanFrame.js @@ -0,0 +1,6 @@ +var structRawCanFrame = +[ + [ "canId", "structRawCanFrame.html#a2d0e7fa0e3d5c20bbed55ed8f7888ff4", null ], + [ "isExtended", "structRawCanFrame.html#a462193d275adc1dba8bd18ffa0e36bb7", null ], + [ "data", "structRawCanFrame.html#a0acb487612104c99c9907344c035df83", null ] +]; \ No newline at end of file diff --git a/docs/html/structSignalInfo-members.html b/docs/html/structSignalInfo-members.html index f1f700a..cbac353 100644 --- a/docs/html/structSignalInfo-members.html +++ b/docs/html/structSignalInfo-members.html @@ -5,10 +5,17 @@ -DBC framework: Member List +DBC Framework: Member List + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,23 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    SignalInfo Member List
    @@ -61,13 +99,16 @@ nameSignalInfo offsetSignalInfo receiversSignalInfo - SignalInfo()SignalInfoinline + SignalInfo() (defined in SignalInfo)SignalInfoinline startBitSignalInfo unitSignalInfo
    + - + diff --git a/docs/html/structSignalInfo.html b/docs/html/structSignalInfo.html index d8517f6..b6dc5ff 100644 --- a/docs/html/structSignalInfo.html +++ b/docs/html/structSignalInfo.html @@ -5,10 +5,17 @@ -DBC framework: SignalInfo Struct Reference +DBC Framework: SignalInfo Struct Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,26 +35,55 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    SignalInfo Struct Reference
    @@ -58,11 +95,6 @@

    #include <signal_info.h>

    - - - -

    -Public Member Functions

     SignalInfo ()
     
    @@ -123,139 +155,6 @@ Public Attributes

    Member Data Documentation

    - -

    ◆ comment

    - -
    -
    -

    Public Attributes

    std::string name
    - - - -
    std::string SignalInfo::comment
    -
    -

    Optional signal comment.

    - -

    Definition at line 34 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseCommentLine().

    - -
    -
    - -

    ◆ factor

    - -
    -
    - - - - -
    double SignalInfo::factor
    -
    -

    Scaling factor.

    - -

    Definition at line 28 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseSignalLine().

    - -
    -
    - -

    ◆ isLittleEndian

    - -
    -
    - - - - -
    bool SignalInfo::isLittleEndian
    -
    -

    true for Intel, false for Motorola.

    - -

    Definition at line 26 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseSignalLine().

    - -
    -
    - -

    ◆ isSigned

    - -
    -
    - - - - -
    bool SignalInfo::isSigned
    -
    -

    true if signal is signed.

    - -

    Definition at line 27 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseSignalLine().

    - -
    -
    - -

    ◆ length

    - -
    -
    - - - - -
    std::uint32_t SignalInfo::length
    -
    -

    Signal length in bits.

    - -

    Definition at line 25 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), DbcParser::ParseSignalLine(), and PrintTree().

    - -
    -
    - -

    ◆ maximum

    - -
    -
    - - - - -
    double SignalInfo::maximum
    -
    -

    Maximum physical value.

    - -

    Definition at line 31 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseSignalLine().

    - -
    -
    - -

    ◆ minimum

    - -
    -
    - - - - -
    double SignalInfo::minimum
    -
    -

    Minimum physical value.

    - -

    Definition at line 30 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseSignalLine().

    - -
    -

    ◆ name

    @@ -271,45 +170,7 @@ Public Attributes

    Definition at line 23 of file signal_info.h.

    -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseSignalLine().

    - - - - -

    ◆ offset

    - -
    -
    - - - - -
    double SignalInfo::offset
    -
    -

    Physical offset.

    - -

    Definition at line 29 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseSignalLine().

    - -
    -
    - -

    ◆ receivers

    - -
    -
    - - - - -
    std::vector<std::string> SignalInfo::receivers
    -
    -

    Signal receivers.

    - -

    Definition at line 33 of file signal_info.h.

    - -

    Referenced by DbcDecodeBuilder::Build(), and DbcParser::ParseSignalLine().

    +

    Referenced by DbcDecodeBuilder::Build().

    @@ -328,7 +189,130 @@ Public Attributes

    Definition at line 24 of file signal_info.h.

    -

    Referenced by DbcDecodeBuilder::Build(), DbcParser::ParseSignalLine(), and PrintTree().

    +

    Referenced by DbcDecodeBuilder::Build().

    + + + + +

    ◆ length

    + +
    +
    + + + + +
    std::uint32_t SignalInfo::length
    +
    +

    Signal length in bits.

    + +

    Definition at line 25 of file signal_info.h.

    + +

    Referenced by DbcDecodeBuilder::Build().

    + +
    +
    + +

    ◆ isLittleEndian

    + +
    +
    + + + + +
    bool SignalInfo::isLittleEndian
    +
    +

    true for Intel, false for Motorola.

    + +

    Definition at line 26 of file signal_info.h.

    + +

    Referenced by DbcDecodeBuilder::Build().

    + +
    +
    + +

    ◆ isSigned

    + +
    +
    + + + + +
    bool SignalInfo::isSigned
    +
    +

    true if signal is signed.

    + +

    Definition at line 27 of file signal_info.h.

    + +
    +
    + +

    ◆ factor

    + +
    +
    + + + + +
    double SignalInfo::factor
    +
    +

    Scaling factor.

    + +

    Definition at line 28 of file signal_info.h.

    + +
    +
    + +

    ◆ offset

    + +
    +
    + + + + +
    double SignalInfo::offset
    +
    +

    Physical offset.

    + +

    Definition at line 29 of file signal_info.h.

    + +
    +
    + +

    ◆ minimum

    + +
    +
    + + + + +
    double SignalInfo::minimum
    +
    +

    Minimum physical value.

    + +

    Definition at line 30 of file signal_info.h.

    + +
    +
    + +

    ◆ maximum

    + +
    +
    + + + + +
    double SignalInfo::maximum
    +
    +

    Maximum physical value.

    + +

    Definition at line 31 of file signal_info.h.

    @@ -347,7 +331,39 @@ Public Attributes

    Definition at line 32 of file signal_info.h.

    -

    Referenced by DbcDecodeBuilder::Build(), DbcParser::ParseSignalLine(), and PrintTree().

    + + + +

    ◆ receivers

    + +
    +
    + + + + +
    std::vector<std::string> SignalInfo::receivers
    +
    +

    Signal receivers.

    + +

    Definition at line 33 of file signal_info.h.

    + +
    +
    + +

    ◆ comment

    + +
    +
    + + + + +
    std::string SignalInfo::comment
    +
    +

    Optional signal comment.

    + +

    Definition at line 34 of file signal_info.h.

    @@ -355,9 +371,13 @@ Public Attributes
  • signal_info.h
  • + - + diff --git a/docs/html/structSignalInfo.js b/docs/html/structSignalInfo.js new file mode 100644 index 0000000..229ec28 --- /dev/null +++ b/docs/html/structSignalInfo.js @@ -0,0 +1,15 @@ +var structSignalInfo = +[ + [ "name", "structSignalInfo.html#a379e422a00cad56f896cacf60455b088", null ], + [ "startBit", "structSignalInfo.html#ace290724f9801521609aedaa946d61f1", null ], + [ "length", "structSignalInfo.html#a1008b5201f71848177217bd52fb84baa", null ], + [ "isLittleEndian", "structSignalInfo.html#af363b1563fb4c7cc8973f9a80c06846c", null ], + [ "isSigned", "structSignalInfo.html#a52a52b320eef92fbcb4626307f9a498f", null ], + [ "factor", "structSignalInfo.html#ae4f78d99a2750aa564d7eba860171499", null ], + [ "offset", "structSignalInfo.html#ab7d0769f47aa540656b22e4e49db517e", null ], + [ "minimum", "structSignalInfo.html#ada7bf94fbeaa26bd08c73982b5af255b", null ], + [ "maximum", "structSignalInfo.html#adf1c4331b9eabced0d7fdda40ff0eb52", null ], + [ "unit", "structSignalInfo.html#a1f214f03e94ef5794de2d3367bfcbd01", null ], + [ "receivers", "structSignalInfo.html#a2c95562fd0b29327a7fd7b1e6feee7f3", null ], + [ "comment", "structSignalInfo.html#ac99ba7563a5dad01e39c4257216953f5", null ] +]; \ No newline at end of file diff --git a/docs/html/svgpan.js b/docs/html/svgpan.js new file mode 100644 index 0000000..2678d38 --- /dev/null +++ b/docs/html/svgpan.js @@ -0,0 +1,323 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + The code below is based on SVGPan Library 1.2 and was modified for doxygen + to support both zooming and panning via the mouse and via embedded buttons. + + This code is licensed under the following BSD license: + + Copyright 2009-2010 Andrea Leofreddi . All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this list of + conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, this list + of conditions and the following disclaimer in the documentation and/or other materials + provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY Andrea Leofreddi ``AS IS'' AND ANY EXPRESS OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Andrea Leofreddi OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + The views and conclusions contained in the software and documentation are those of the + authors and should not be interpreted as representing official policies, either expressed + or implied, of Andrea Leofreddi. + + @licend The above is the entire license notice for the JavaScript code in this file + */ + +var root = document.documentElement; +var state = 'none'; +var stateOrigin; +var stateTf = root.createSVGMatrix(); +var cursorGrab = ' url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAMAAAAolt3jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAlQTFRFAAAA////////c3ilYwAAAAN0Uk5T//8A18oNQQAAAD1JREFUeNp0zlEKACAIA9Bt9z90bZBZkQj29qFBEuBOzQHSnWTTyckEfqUuZgFvslH4ch3qLCO/Kr8cAgwATw4Ax6XRCcoAAAAASUVORK5CYII="), move'; +var zoomSteps = 10; +var zoomInFactor; +var zoomOutFactor; +var windowWidth; +var windowHeight; +var svgDoc; +var minZoom; +var maxZoom; +if (!window) window=this; + +/** + * Show the graph in the middle of the view, scaled to fit + */ +function show() +{ + if (window.innerHeight) // Firefox + { + windowWidth = window.innerWidth; + windowHeight = window.innerHeight; + } + else if (document.documentElement.clientWidth) // Chrome/Safari + { + windowWidth = document.documentElement.clientWidth + windowHeight = document.documentElement.clientHeight + } + if (!windowWidth || !windowHeight) // failsafe + { + windowWidth = 800; + windowHeight = 600; + } + minZoom = Math.min(Math.min(viewHeight,windowHeight)/viewHeight,Math.min(viewWidth,windowWidth)/viewWidth); + maxZoom = minZoom+1.5; + zoomInFactor = Math.pow(maxZoom/minZoom,1.0/zoomSteps); + zoomOutFactor = 1.0/zoomInFactor; + + var g = svgDoc.getElementById('viewport'); + try + { + var bb = g.getBBox(); // this can throw an exception if css { display: none } + var tx = (windowWidth-viewWidth*minZoom+8)/(2*minZoom); + var ty = viewHeight+(windowHeight-viewHeight*minZoom)/(2*minZoom); + var a = 'scale('+minZoom+') rotate(0) translate('+tx+' '+ty+')'; + g.setAttribute('transform',a); + } + catch(e) {} +} + +/** + * Register handlers + */ +function init(evt) +{ + svgDoc = evt.target.ownerDocument; + try { + if (top.window && top.window.registerShow) { // register show function in html doc for dynamic sections + top.window.registerShow(sectionId,show); + } + } catch(e) { + // ugh, we are not allowed to talk to the parent; can happen with Chrome when viewing pages + // locally, since they treat every local page as having a different origin + } + show(); + + setAttributes(root, { + "onmousedown" : "handleMouseDown(evt)", + "onmousemove" : "handleMouseMove(evt)", + "onmouseup" : "handleMouseUp(evt)" + }); + + if (window.addEventListener) + { + if (navigator.userAgent.toLowerCase().indexOf('webkit') >= 0 || + navigator.userAgent.toLowerCase().indexOf("opera") >= 0 || + navigator.appVersion.indexOf("MSIE") != -1) + { + window.addEventListener('mousewheel', handleMouseWheel, false); // Chrome/Safari/IE9 + } + else + { + window.addEventListener('DOMMouseScroll', handleMouseWheel, false); // Others + } + } +} + +window.onresize=function() +{ + if (svgDoc) { show(); } +} + +/** + * Instance an SVGPoint object with given event coordinates. + */ +function getEventPoint(evt) +{ + var p = root.createSVGPoint(); + p.x = evt.clientX; + p.y = evt.clientY; + return p; +} + +/** + * Sets the current transform matrix of an element. + */ +function setCTM(element, matrix) +{ + var s = "matrix(" + matrix.a + "," + matrix.b + "," + matrix.c + "," + matrix.d + "," + matrix.e + "," + matrix.f + ")"; + element.setAttribute("transform", s); +} + +/** + * Sets attributes of an element. + */ +function setAttributes(element, attributes) +{ + for (i in attributes) + element.setAttributeNS(null, i, attributes[i]); +} + +function doZoom(g,point,zoomFactor) +{ + var p = point.matrixTransform(g.getCTM().inverse()); + var k = root.createSVGMatrix().translate(p.x, p.y).scale(zoomFactor).translate(-p.x, -p.y); + var n = g.getCTM().multiply(k); + var s = Math.max(n.a,n.d); + if (s>maxZoom) n=n.translate(p.x,p.y).scale(maxZoom/s).translate(-p.x,-p.y); + else if (s'); + d.write('Print SVG'); + d.write(''); + d.write('
    '+xs+'
    '); + d.write(''); + d.write(''); + d.close(); + } catch(e) { + alert('Failed to open popup window needed for printing!\n'+e.message); + } +} +/* @license-end */ diff --git a/docs/html/tabs.css b/docs/html/tabs.css index 720b1c6..fb0977a 100644 --- a/docs/html/tabs.css +++ b/docs/html/tabs.css @@ -1,61 +1 @@ -.tabs, .tabs2, .tabs3 { - background-image: url('tab_b.png'); - width: 100%; - z-index: 101; - font-size: 13px; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; -} - -.tabs2 { - font-size: 10px; -} -.tabs3 { - font-size: 9px; -} - -.tablist { - margin: 0; - padding: 0; - display: table; -} - -.tablist li { - float: left; - display: table-cell; - background-image: url('tab_b.png'); - line-height: 36px; - list-style: none; -} - -.tablist a { - display: block; - padding: 0 20px; - font-weight: bold; - background-image:url('tab_s.png'); - background-repeat:no-repeat; - background-position:right; - color: #283A5D; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; - outline: none; -} - -.tabs3 .tablist a { - padding: 0 10px; -} - -.tablist a:hover { - background-image: url('tab_h.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); - text-decoration: none; -} - -.tablist li.current a { - background-image: url('tab_a.png'); - background-repeat:repeat-x; - color: #fff; - text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); -} - +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0px/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all 0.25s;transition:all 0.25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked~.main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px, 1px, 1px, 1px)}#main-menu-state:not(:checked)~#main-menu{display:none}#main-menu-state:checked~#main-menu{display:block}@media (min-width: 768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked)~#main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a.current{color:#D23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media (min-width: 768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #D23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#D23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} diff --git a/docs/html/tree__node_8cpp.html b/docs/html/tree__node_8cpp.html index 4bb189b..c116bbc 100644 --- a/docs/html/tree__node_8cpp.html +++ b/docs/html/tree__node_8cpp.html @@ -5,10 +5,17 @@ -DBC framework: tree_node.cpp File Reference +DBC Framework: tree_node.cpp File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    tree_node.cpp File Reference
    @@ -59,9 +98,13 @@

    Definition in file tree_node.cpp.

    + - + diff --git a/docs/html/tree__node_8cpp_source.html b/docs/html/tree__node_8cpp_source.html index d71545a..534d18a 100644 --- a/docs/html/tree__node_8cpp_source.html +++ b/docs/html/tree__node_8cpp_source.html @@ -5,10 +5,17 @@ -DBC framework: tree_node.cpp Source File +DBC Framework: tree_node.cpp Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,41 +35,62 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    tree_node.cpp
    -Go to the documentation of this file.
    1/**
    -
    2 * @file tree_node.cpp
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#include "tree_node.h"
    13
    -
    15 : m_type (NodeType::Root)
    +
    15 : m_type (NodeType::Root)
    16 , m_name ("dbc")
    17 , m_children()
    18 , m_frame()
    @@ -69,7 +98,7 @@
    20}
    21
    -
    23 : m_type (NodeType::Frame)
    +
    23 : m_type (NodeType::Frame)
    24 , m_name (frame.name)
    25 , m_children()
    26 , m_frame (new FrameInfo (frame))
    @@ -77,7 +106,7 @@
    28}
    29
    -
    31 : m_type (NodeType::Signal)
    +
    31 : m_type (NodeType::Signal)
    32 , m_name (signal.name)
    33 , m_children()
    34 , m_frame()
    @@ -86,67 +115,63 @@
    37
    38void TreeNode::AddChild (std::unique_ptr<TreeNode> child) {
    39 if (child)
    -
    40 m_children.push_back (std::move (child));
    +
    40 m_children.push_back (std::move (child));
    41}
    42
    43std::size_t TreeNode::GetChildCount() const {
    -
    44 return m_children.size();
    +
    44 return m_children.size();
    45}
    46
    47const TreeNode *TreeNode::GetChild (std::size_t index) const {
    -
    48 if (index >= m_children.size())
    +
    48 if (index >= m_children.size())
    49 return nullptr;
    50
    -
    51 return m_children[index].get();
    +
    51 return m_children[index].get();
    52}
    53
    54TreeNode *TreeNode::GetChild (std::size_t index) {
    -
    55 if (index >= m_children.size())
    +
    55 if (index >= m_children.size())
    56 return nullptr;
    57
    -
    58 return m_children[index].get();
    +
    58 return m_children[index].get();
    59}
    60
    -
    62 return m_type;
    +
    62 return m_type;
    63}
    64
    65const std::string &TreeNode::GetName() const {
    -
    66 return m_name;
    +
    66 return m_name;
    67}
    68
    -
    70 return m_frame.get();
    +
    70 return m_frame.get();
    71}
    72
    -
    74 return m_signal.get();
    +
    74 return m_signal.get();
    75}
    Tree node for later use in model/view or other hierarchy consumers.
    Definition: tree_node.h:35
    -
    NodeType m_type
    Definition: tree_node.h:113
    -
    std::vector< std::unique_ptr< TreeNode > > m_children
    Definition: tree_node.h:115
    const SignalInfo * GetSignal() const
    Get signal payload if node is signal.
    Definition: tree_node.cpp:73
    const TreeNode * GetChild(std::size_t index) const
    Get child by index.
    Definition: tree_node.cpp:47
    void AddChild(std::unique_ptr< TreeNode > child)
    Add child node.
    Definition: tree_node.cpp:38
    -
    std::unique_ptr< FrameInfo > m_frame
    Definition: tree_node.h:116
    TreeNode()
    Create root node.
    Definition: tree_node.cpp:14
    const std::string & GetName() const
    Get display name.
    Definition: tree_node.cpp:65
    std::size_t GetChildCount() const
    Get child count.
    Definition: tree_node.cpp:43
    -
    std::string m_name
    Definition: tree_node.h:114
    -
    std::unique_ptr< SignalInfo > m_signal
    Definition: tree_node.h:117
    NodeType GetType() const
    Get node type.
    Definition: tree_node.cpp:61
    const FrameInfo * GetFrame() const
    Get frame payload if node is frame.
    Definition: tree_node.cpp:69
    Describes one CAN frame from a DBC file.
    Definition: frame_info.h:24
    Describes one signal inside a DBC frame.
    Definition: signal_info.h:22
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    NodeType
    Type of a tree node.
    Definition: tree_node.h:26
    - - -
    +
    - + diff --git a/docs/html/tree__node_8h.html b/docs/html/tree__node_8h.html index ee53ea3..a48d999 100644 --- a/docs/html/tree__node_8h.html +++ b/docs/html/tree__node_8h.html @@ -5,10 +5,17 @@ -DBC framework: tree_node.h File Reference +DBC Framework: tree_node.h File Reference + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,22 +35,53 @@
    - - + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    Classes | @@ -70,9 +109,9 @@ Classes - @@ -104,20 +143,19 @@ Enumerations

    Type of a tree node.

    -

    Enumerations

    enum class  NodeType { Root -, Frame -, Signal +
    enum class  NodeType { Root +, Frame +, Signal }
     Type of a tree node. More...
     
    - - - -
    Enumerator
    Root 
    Frame 
    Signal 

    Definition at line 26 of file tree_node.h.

    + - + diff --git a/docs/html/tree__node_8h.js b/docs/html/tree__node_8h.js new file mode 100644 index 0000000..460c18d --- /dev/null +++ b/docs/html/tree__node_8h.js @@ -0,0 +1,9 @@ +var tree__node_8h = +[ + [ "TreeNode", "classTreeNode.html", "classTreeNode" ], + [ "NodeType", "tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16", [ + [ "Root", "tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad", null ], + [ "Frame", "tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a", null ], + [ "Signal", "tree__node_8h.html#acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398", null ] + ] ] +]; \ No newline at end of file diff --git a/docs/html/tree__node_8h_source.html b/docs/html/tree__node_8h_source.html index cf19e10..acb3935 100644 --- a/docs/html/tree__node_8h_source.html +++ b/docs/html/tree__node_8h_source.html @@ -5,10 +5,17 @@ -DBC framework: tree_node.h Source File +DBC Framework: tree_node.h Source File + + + + + + + @@ -18,8 +25,9 @@ -
    DBC framework +
    DBC Framework
    +
    DBC parsing and CAN signal decoding framework
    @@ -27,37 +35,58 @@
    - - + + + + + +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    +
    tree_node.h
    -Go to the documentation of this file.
    1/**
    -
    2 * @file tree_node.h
    -
    3 * @brief
    -
    4 *
    -
    5 * Created: 2026-03-13
    -
    6 * Author: Deeaitch (Dim. Himro)
    -
    7 *
    -
    8 * Licensed under the MIT License.
    -
    9 * See LICENSE file in the project root for full license text.
    -
    10 */
    -
    11
    +Go to the documentation of this file.
    1
    12#ifndef TREE_NODE_H
    13#define TREE_NODE_H
    14
    @@ -68,121 +97,61 @@
    19
    20#include "frame_info.h"
    21#include "signal_info.h"
    -
    22
    -
    23/**
    -
    24 * @brief Type of a tree node.
    -
    25 */
    +
    22
    26enum class NodeType {
    -
    27 Root,
    -
    28 Frame,
    -
    29 Signal
    +
    27 Root,
    +
    28 Frame,
    +
    29 Signal
    30};
    -
    31
    -
    32/**
    -
    33 * @brief Tree node for later use in model/view or other hierarchy consumers.
    -
    34 */
    +
    31
    35class TreeNode {
    -
    36 public:
    -
    37 /**
    -
    38 * @brief Create root node.
    -
    39 */
    +
    36 public:
    40 TreeNode();
    -
    41
    -
    42 /**
    -
    43 * @brief Create frame node.
    -
    44 * @param frame Frame payload.
    -
    45 */
    +
    41
    46 explicit TreeNode (const FrameInfo &frame);
    -
    47
    -
    48 /**
    -
    49 * @brief Create signal node.
    -
    50 * @param signal Signal payload.
    -
    51 */
    +
    47
    52 explicit TreeNode (const SignalInfo &signal);
    53
    -
    54 ~TreeNode() = default;
    +
    54 ~TreeNode() = default;
    55
    -
    56 TreeNode (const TreeNode &) = delete;
    -
    57 TreeNode &operator= (const TreeNode &) = delete;
    +
    56 TreeNode (const TreeNode &) = delete;
    +
    57 TreeNode &operator= (const TreeNode &) = delete;
    58
    -
    59 TreeNode (TreeNode &&) = default;
    - -
    61
    -
    62 /**
    -
    63 * @brief Add child node.
    -
    64 * @param child Child node to add.
    -
    65 */
    +
    59 TreeNode (TreeNode &&) = default;
    +
    60 TreeNode &operator= (TreeNode &&) = default;
    +
    61
    66 void AddChild (std::unique_ptr<TreeNode> child);
    -
    67
    -
    68 /**
    -
    69 * @brief Get child count.
    -
    70 * @return Number of children.
    -
    71 */
    +
    67
    72 std::size_t GetChildCount() const;
    -
    73
    -
    74 /**
    -
    75 * @brief Get child by index.
    -
    76 * @param index Child index.
    -
    77 * @return Child pointer or nullptr if index is invalid.
    -
    78 */
    +
    73
    79 const TreeNode *GetChild (std::size_t index) const;
    -
    80
    -
    81 /**
    -
    82 * @brief Get mutable child by index.
    -
    83 * @param index Child index.
    -
    84 * @return Child pointer or nullptr if index is invalid.
    -
    85 */
    +
    80
    86 TreeNode *GetChild (std::size_t index);
    -
    87
    -
    88 /**
    -
    89 * @brief Get node type.
    -
    90 * @return Node type.
    -
    91 */
    +
    87
    92 NodeType GetType() const;
    -
    93
    -
    94 /**
    -
    95 * @brief Get display name.
    -
    96 * @return Node name.
    -
    97 */
    +
    93
    98 const std::string &GetName() const;
    -
    99
    -
    100 /**
    -
    101 * @brief Get frame payload if node is frame.
    -
    102 * @return Pointer to frame info or nullptr.
    -
    103 */
    +
    99
    104 const FrameInfo *GetFrame() const;
    -
    105
    -
    106 /**
    -
    107 * @brief Get signal payload if node is signal.
    -
    108 * @return Pointer to signal info or nullptr.
    -
    109 */
    +
    105
    110 const SignalInfo *GetSignal() const;
    111
    112 private:
    - -
    114 std::string m_name;
    -
    115 std::vector<std::unique_ptr<TreeNode> > m_children;
    -
    116 std::unique_ptr<FrameInfo> m_frame;
    -
    117 std::unique_ptr<SignalInfo> m_signal;
    +
    113 NodeType m_type;
    +
    114 std::string m_name;
    +
    115 std::vector<std::unique_ptr<TreeNode> > m_children;
    +
    116 std::unique_ptr<FrameInfo> m_frame;
    +
    117 std::unique_ptr<SignalInfo> m_signal;
    118};
    119
    120#endif /* TREE_NODE_H */
    Tree node for later use in model/view or other hierarchy consumers.
    Definition: tree_node.h:35
    -
    NodeType m_type
    Definition: tree_node.h:113
    -
    std::vector< std::unique_ptr< TreeNode > > m_children
    Definition: tree_node.h:115
    const SignalInfo * GetSignal() const
    Get signal payload if node is signal.
    Definition: tree_node.cpp:73
    -
    TreeNode(TreeNode &&)=default
    const TreeNode * GetChild(std::size_t index) const
    Get child by index.
    Definition: tree_node.cpp:47
    -
    TreeNode(const TreeNode &)=delete
    void AddChild(std::unique_ptr< TreeNode > child)
    Add child node.
    Definition: tree_node.cpp:38
    -
    std::unique_ptr< FrameInfo > m_frame
    Definition: tree_node.h:116
    -
    ~TreeNode()=default
    TreeNode()
    Create root node.
    Definition: tree_node.cpp:14
    const std::string & GetName() const
    Get display name.
    Definition: tree_node.cpp:65
    std::size_t GetChildCount() const
    Get child count.
    Definition: tree_node.cpp:43
    -
    std::string m_name
    Definition: tree_node.h:114
    -
    TreeNode & operator=(const TreeNode &)=delete
    -
    std::unique_ptr< SignalInfo > m_signal
    Definition: tree_node.h:117
    NodeType GetType() const
    Get node type.
    Definition: tree_node.cpp:61
    const FrameInfo * GetFrame() const
    Get frame payload if node is frame.
    Definition: tree_node.cpp:69
    Created: 2026-03-13 Author: Deeaitch (Dim. Himro)
    @@ -190,13 +159,14 @@
    Describes one CAN frame from a DBC file.
    Definition: frame_info.h:24
    Describes one signal inside a DBC frame.
    Definition: signal_info.h:22
    NodeType
    Type of a tree node.
    Definition: tree_node.h:26
    - - -
    +
    - +