\hypertarget{main_8cpp_source}{}\doxysection{main.\+cpp} \mbox{\hyperlink{main_8cpp}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00001}00001 \textcolor{comment}{/**}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00002}00002 \textcolor{comment}{ * @file main.cpp}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00003}00003 \textcolor{comment}{ * @brief}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00004}00004 \textcolor{comment}{ *}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00005}00005 \textcolor{comment}{ * Created: 2026-\/03-\/13}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00006}00006 \textcolor{comment}{ * Author: Deeaitch (Dim. Himro)}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00007}00007 \textcolor{comment}{ *}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00008}00008 \textcolor{comment}{ * Licensed under the MIT License.}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00009}00009 \textcolor{comment}{ * See LICENSE file in the project root for full license text.}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00010}00010 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00011}00011 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00012}00012 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00013}00013 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00014}00014 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00015}00015 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00016}00016 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00017}00017 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00018}00018 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{dbc__parser_8h}{dbc\_parser.h}}"{}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00019}00019 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{dbc__tree__builder_8h}{dbc\_tree\_builder.h}}"{}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00020}00020 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{dbc__decode__builder_8h}{dbc\_decode\_builder.h}}"{}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00021}00021 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{dbc__decoder_8h}{dbc\_decoder.h}}"{}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00022}00022 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00023}\mbox{\hyperlink{main_8cpp_a57aefef9cfd52a8190df002e12808e0a}{00023}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{main_8cpp_a57aefef9cfd52a8190df002e12808e0a}{PrintTree}} (\textcolor{keyword}{const} \mbox{\hyperlink{classTreeNode}{TreeNode}} *node, \textcolor{keywordtype}{int} indent) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00024}00024 \textcolor{keywordflow}{if} (node == \textcolor{keyword}{nullptr})} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00025}00025 \textcolor{keywordflow}{return};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00026}00026 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00027}00027 \textcolor{keywordflow}{for} (\textcolor{keywordtype}{int} i = 0; i < indent; ++i)} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00028}00028 std::cout << \textcolor{stringliteral}{"{} "{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00029}00029 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00030}00030 \textcolor{keywordflow}{switch} (node-\/>\mbox{\hyperlink{classTreeNode_afa2f4b0aafa12d3d41ed00df8e0250c9}{GetType}}()) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00031}00031 \textcolor{keywordflow}{case} \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16afa03eb688ad8aa1db593d33dabd89bad}{NodeType::Root}}:} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00032}00032 std::cout << \textcolor{stringliteral}{"{}[root] "{}} << node-\/>\mbox{\hyperlink{classTreeNode_aaac5b8d9dc9e5ae1f367d1adbcf20e18}{GetName}}() << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00033}00033 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00034}00034 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00035}00035 \textcolor{keywordflow}{case} \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16a3bb3e8c8a24891ba0f7608bcc96f8b0a}{NodeType::Frame}}: \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00036}00036 \textcolor{keyword}{const} \mbox{\hyperlink{structFrameInfo}{FrameInfo}} *frame = node-\/>\mbox{\hyperlink{classTreeNode_afc503b40004764163605d6dbdb4ef811}{GetFrame}}();} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00037}00037 std::cout << \textcolor{stringliteral}{"{}[frame] "{}} << node-\/>\mbox{\hyperlink{classTreeNode_aaac5b8d9dc9e5ae1f367d1adbcf20e18}{GetName}}();} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00038}00038 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00039}00039 \textcolor{keywordflow}{if} (frame != \textcolor{keyword}{nullptr}) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00040}00040 std::cout << \textcolor{stringliteral}{"{} id=0x"{}} << std::hex << frame-\/>\mbox{\hyperlink{structFrameInfo_af470b0742c05bfbffc31c51a68f5c05e}{canId}} << std::dec} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00041}00041 << \textcolor{stringliteral}{"{} ext="{}} << (frame-\/>\mbox{\hyperlink{structFrameInfo_a34b726afaad2ac5c697fdb2ac070cdaf}{isExtended}} ? \textcolor{stringliteral}{"{}yes"{}} : \textcolor{stringliteral}{"{}no"{}})} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00042}00042 << \textcolor{stringliteral}{"{} dlc="{}} << \textcolor{keyword}{static\_cast<}\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int}\textcolor{keyword}{>} (frame-\/>\mbox{\hyperlink{structFrameInfo_aa2b198ea0f55e560c123d35e7b3ecab9}{dlc}});} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00043}00043 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00044}00044 \textcolor{keywordflow}{if} (frame-\/>\mbox{\hyperlink{structFrameInfo_a4737a5420213ad4304724e39f3a4e55d}{hasPgn}})} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00045}00045 std::cout << \textcolor{stringliteral}{"{} pgn="{}} << frame-\/>\mbox{\hyperlink{structFrameInfo_aee518b33f1000bf0b7f6e4a87474c943}{pgn}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00046}00046 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00047}00047 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00048}00048 std::cout << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00049}00049 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00050}00050 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00051}00051 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00052}00052 \textcolor{keywordflow}{case} \mbox{\hyperlink{tree__node_8h_acac9cbaeea226ed297804c012dc12b16a085fea7abdc5d904fe69a3081efd7398}{NodeType::Signal}}: \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00053}00053 \textcolor{keyword}{const} \mbox{\hyperlink{structSignalInfo}{SignalInfo}} *signal = node-\/>\mbox{\hyperlink{classTreeNode_a226518612d0d00b5988a2c44fc21d3f1}{GetSignal}}();} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00054}00054 std::cout << \textcolor{stringliteral}{"{}[signal] "{}} << node-\/>\mbox{\hyperlink{classTreeNode_aaac5b8d9dc9e5ae1f367d1adbcf20e18}{GetName}}();} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00055}00055 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00056}00056 \textcolor{keywordflow}{if} (signal != \textcolor{keyword}{nullptr}) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00057}00057 std::cout << \textcolor{stringliteral}{"{} start="{}} << signal-\/>\mbox{\hyperlink{structSignalInfo_ace290724f9801521609aedaa946d61f1}{startBit}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00058}00058 << \textcolor{stringliteral}{"{} len="{}} << signal-\/>\mbox{\hyperlink{structSignalInfo_a1008b5201f71848177217bd52fb84baa}{length}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00059}00059 << \textcolor{stringliteral}{"{} unit="{}} << signal-\/>\mbox{\hyperlink{structSignalInfo_a1f214f03e94ef5794de2d3367bfcbd01}{unit}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00060}00060 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00061}00061 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00062}00062 std::cout << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00063}00063 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00064}00064 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00065}00065 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00066}00066 \textcolor{keywordflow}{default}:} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00067}00067 std::cout << \textcolor{stringliteral}{"{}[unknown]\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00068}00068 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00069}00069 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00070}00070 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00071}00071 \textcolor{keywordflow}{for} (std::size\_t i = 0U; i < node-\/>\mbox{\hyperlink{classTreeNode_abdd82460187dca8d3e5d66f5d5c529ea}{GetChildCount}}(); ++i)} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00072}00072 \mbox{\hyperlink{main_8cpp_a57aefef9cfd52a8190df002e12808e0a}{PrintTree}} (node-\/>\mbox{\hyperlink{classTreeNode_a4727ff801a2d1b9323c5ae50a35457a6}{GetChild}} (i), indent + 1);} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00073}00073 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00074}00074 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00075}\mbox{\hyperlink{main_8cpp_a26dbbea5b56e3fbc451b68f217d5063f}{00075}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{main_8cpp_a26dbbea5b56e3fbc451b68f217d5063f}{PrintDecodedFrame}} (\textcolor{keyword}{const} \mbox{\hyperlink{structDecodedFrameValue}{DecodedFrameValue}} \&decoded) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00076}00076 \textcolor{keywordflow}{if} (!decoded.\mbox{\hyperlink{structDecodedFrameValue_a4f51c31110dba1f73a763c596372beb0}{valid}} || (decoded.\mbox{\hyperlink{structDecodedFrameValue_a60dda1cc352d2c8087f0bdbc81dd266c}{definition}} == \textcolor{keyword}{nullptr})) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00077}00077 std::cout << \textcolor{stringliteral}{"{}No frame definition found.\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00078}00078 \textcolor{keywordflow}{return};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00079}00079 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00080}00080 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00081}00081 std::cout << \textcolor{stringliteral}{"{}Decoded frame: "{}} << decoded.\mbox{\hyperlink{structDecodedFrameValue_a60dda1cc352d2c8087f0bdbc81dd266c}{definition}}-\/>\mbox{\hyperlink{structDecodeFrame_aa0a7f8fd5bfde2148dfd0d838328f579}{name}} << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00082}00082 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00083}00083 \textcolor{keywordflow}{for} (std::size\_t index = 0U; index < decoded.\mbox{\hyperlink{structDecodedFrameValue_a8440e0e5d7953102095b029f522022d3}{signals}}.size(); ++index) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00084}00084 \textcolor{keyword}{const} \mbox{\hyperlink{structDecodedSignalValue}{DecodedSignalValue}} \&signal = decoded.\mbox{\hyperlink{structDecodedFrameValue_a8440e0e5d7953102095b029f522022d3}{signals}}[index];} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00085}00085 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00086}00086 \textcolor{keywordflow}{if} ((signal.\mbox{\hyperlink{structDecodedSignalValue_acadc3b3bb21dd6b0412d342c7e6b20d7}{definition}} == \textcolor{keyword}{nullptr}) || !signal.\mbox{\hyperlink{structDecodedSignalValue_aac0ed361af545cde48d0e6f41a859686}{valid}})} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00087}00087 \textcolor{keywordflow}{continue};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00088}00088 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00089}00089 std::cout << \textcolor{stringliteral}{"{} "{}} << signal.\mbox{\hyperlink{structDecodedSignalValue_acadc3b3bb21dd6b0412d342c7e6b20d7}{definition}}-\/>\mbox{\hyperlink{structDecodeSignal_a58cf5844f2272a23dcb9687d912e4780}{name}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00090}00090 << \textcolor{stringliteral}{"{} raw="{}} << signal.\mbox{\hyperlink{structDecodedSignalValue_a5138b825940e34689f7b3891627ee9ec}{rawValue}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00091}00091 << \textcolor{stringliteral}{"{} physical="{}} << signal.\mbox{\hyperlink{structDecodedSignalValue_a6847d05b3cb00d5e0f6c611968f57978}{physicalValue}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00092}00092 << \textcolor{stringliteral}{"{} "{}} << signal.\mbox{\hyperlink{structDecodedSignalValue_acadc3b3bb21dd6b0412d342c7e6b20d7}{definition}}-\/>\mbox{\hyperlink{structDecodeSignal_a38eed9ca7581423fd8bfbedcffc12092}{unit}}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00093}00093 << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00094}00094 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00095}00095 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00096}00096 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00097}\mbox{\hyperlink{main_8cpp_a0ddf1224851353fc92bfbff6f499fa97}{00097}} \textcolor{keywordtype}{int} \mbox{\hyperlink{main_8cpp_a0ddf1224851353fc92bfbff6f499fa97}{main}} (\textcolor{keywordtype}{int} argc, \textcolor{keywordtype}{char} *argv[]) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00098}00098 \textcolor{keywordflow}{if} (argc < 2) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00099}00099 std::cerr << \textcolor{stringliteral}{"{}Usage: dbc\_demo \(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00100}00100 \textcolor{keywordflow}{return} 1;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00101}00101 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00102}00102 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00103}00103 \textcolor{keywordflow}{try} \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00104}00104 \mbox{\hyperlink{classDbcParser}{DbcParser}} parser;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00105}00105 \mbox{\hyperlink{structDbcDatabase}{DbcDatabase}} database = parser.\mbox{\hyperlink{classDbcParser_aef72826942c9095d653fafa435855e56}{ParseFile}} (argv[1]);} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00106}00106 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00107}00107 \mbox{\hyperlink{classDbcTreeBuilder}{DbcTreeBuilder}} treeBuilder;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00108}00108 std::unique\_ptr root = treeBuilder.\mbox{\hyperlink{classDbcTreeBuilder_a7e57d067d831b14b383947fd125edd4b}{Build}} (database);} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00109}00109 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00110}00110 std::cout << \textcolor{stringliteral}{"{}=== Parsed tree ===\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00111}00111 \mbox{\hyperlink{main_8cpp_a57aefef9cfd52a8190df002e12808e0a}{PrintTree}} (root.get(), 0);} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00112}00112 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00113}00113 \mbox{\hyperlink{classDbcDecodeBuilder}{DbcDecodeBuilder}} decodeBuilder;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00114}00114 \mbox{\hyperlink{structDecodeDatabase}{DecodeDatabase}} decodeDatabase = decodeBuilder.\mbox{\hyperlink{classDbcDecodeBuilder_a2bc6386dfb5e58976c42e22c19ec471b}{Build}} (database);} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00115}00115 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00116}00116 \textcolor{comment}{/*}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00117}00117 \textcolor{comment}{ * Example raw frame.}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00118}00118 \textcolor{comment}{ * Replace with live CAN frame or trace record later.}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00119}00119 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00120}00120 \mbox{\hyperlink{structRawCanFrame}{RawCanFrame}} rawFrame;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00121}00121 rawFrame.\mbox{\hyperlink{structRawCanFrame_a2d0e7fa0e3d5c20bbed55ed8f7888ff4}{canId}} = decodeDatabase.\mbox{\hyperlink{structDecodeDatabase_a2bd4ddfc2602c1de4e12a373bfc93072}{frames}}.empty() ? 0U : decodeDatabase.\mbox{\hyperlink{structDecodeDatabase_a2bd4ddfc2602c1de4e12a373bfc93072}{frames}}[0].canId;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00122}00122 rawFrame.\mbox{\hyperlink{structRawCanFrame_a462193d275adc1dba8bd18ffa0e36bb7}{isExtended}} = decodeDatabase.\mbox{\hyperlink{structDecodeDatabase_a2bd4ddfc2602c1de4e12a373bfc93072}{frames}}.empty() ? false : decodeDatabase.\mbox{\hyperlink{structDecodeDatabase_a2bd4ddfc2602c1de4e12a373bfc93072}{frames}}[0].isExtended;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00123}00123 rawFrame.\mbox{\hyperlink{structRawCanFrame_a0acb487612104c99c9907344c035df83}{data}}.resize (8U, 0U);} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00124}00124 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00125}00125 \mbox{\hyperlink{classDbcDecoder}{DbcDecoder}} decoder;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00126}00126 \mbox{\hyperlink{structDecodedFrameValue}{DecodedFrameValue}} decoded = decoder.\mbox{\hyperlink{classDbcDecoder_a345951ffe5d943a70d3a1ea1f39e74f7}{Decode}} (decodeDatabase, rawFrame);} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00127}00127 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00128}00128 std::cout << \textcolor{stringliteral}{"{}\(\backslash\)n=== Decoded frame ===\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00129}00129 \mbox{\hyperlink{main_8cpp_a26dbbea5b56e3fbc451b68f217d5063f}{PrintDecodedFrame}} (decoded);} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00130}00130 \} \textcolor{keywordflow}{catch} (\textcolor{keyword}{const} std::exception \&ex) \{} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00131}00131 std::cerr << \textcolor{stringliteral}{"{}Error: "{}} << ex.what() << \textcolor{stringliteral}{"{}\(\backslash\)n"{}};} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00132}00132 \textcolor{keywordflow}{return} 2;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00133}00133 \}} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00134}00134 } \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00135}00135 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{main_8cpp_source_l00136}00136 \}} \end{DoxyCode}