\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 <iostream>}}
\DoxyCodeLine{\Hypertarget{main_8cpp_source_l00013}00013 \textcolor{preprocessor}{\#include <iomanip>}}
\DoxyCodeLine{\Hypertarget{main_8cpp_source_l00014}00014 \textcolor{preprocessor}{\#include <memory>}}
\DoxyCodeLine{\Hypertarget{main_8cpp_source_l00015}00015 \textcolor{preprocessor}{\#include <vector>}}
\DoxyCodeLine{\Hypertarget{main_8cpp_source_l00016}00016 \textcolor{preprocessor}{\#include <cstddef>}}
\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 <file.dbc>\(\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<TreeNode> 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}
