\hypertarget{dbc__parser_8h_source}{}\doxysection{dbc\+\_\+parser.\+h} \mbox{\hyperlink{dbc__parser_8h}{Go to the documentation of this file.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00001}00001 \textcolor{comment}{/**}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00002}00002 \textcolor{comment}{ * @file dbc\_parser.h}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00003}00003 \textcolor{comment}{ * @brief}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00004}00004 \textcolor{comment}{ *}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00005}00005 \textcolor{comment}{ * Created: 2026-\/03-\/13}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00006}00006 \textcolor{comment}{ * Author: Deeaitch (Dim. Himro)}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00007}00007 \textcolor{comment}{ *}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00008}00008 \textcolor{comment}{ * Licensed under the MIT License.}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00009}00009 \textcolor{comment}{ * See LICENSE file in the project root for full license text.}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00010}00010 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00011}00011 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00012}00012 \textcolor{preprocessor}{\#ifndef DBC\_PARSER\_H}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00013}00013 \textcolor{preprocessor}{\#define DBC\_PARSER\_H}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00014}00014 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00015}00015 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00016}00016 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00017}00017 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00018}00018 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00019}00019 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{dbc__database_8h}{dbc\_database.h}}"{}}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00020}00020 \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00021}00021 \textcolor{comment}{/**}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00022}00022 \textcolor{comment}{ * @brief Minimal DBC parser.}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00023}00023 \textcolor{comment}{ *}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00024}00024 \textcolor{comment}{ * Supports:}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00025}00025 \textcolor{comment}{ * -\/ BO\_}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00026}00026 \textcolor{comment}{ * -\/ SG\_}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00027}00027 \textcolor{comment}{ * -\/ CM\_ BO\_}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00028}00028 \textcolor{comment}{ * -\/ CM\_ SG\_}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00029}00029 \textcolor{comment}{ *}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00030}00030 \textcolor{comment}{ * Ignores:}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00031}00031 \textcolor{comment}{ * -\/ attributes}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00032}00032 \textcolor{comment}{ * -\/ multiplexing}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00033}00033 \textcolor{comment}{ * -\/ value tables}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00034}00034 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00035}\mbox{\hyperlink{classDbcParser}{00035}} \textcolor{keyword}{class }\mbox{\hyperlink{classDbcParser}{DbcParser}} \{} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00036}00036 \textcolor{keyword}{public}:\textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00037}00037 \textcolor{comment}{ /**}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00038}00038 \textcolor{comment}{ * @brief Parse DBC file.}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00039}00039 \textcolor{comment}{ * @param filePath Path to input file.}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00040}00040 \textcolor{comment}{ * @return Parsed database.}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00041}00041 \textcolor{comment}{ * @throws std::runtime\_error on file or parse errors.}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00042}00042 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00043}00043 \mbox{\hyperlink{structDbcDatabase}{DbcDatabase}} \mbox{\hyperlink{classDbcParser_aef72826942c9095d653fafa435855e56}{ParseFile}} (\textcolor{keyword}{const} std::string \&filePath) \textcolor{keyword}{const};} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00044}00044 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00045}00045 \textcolor{keyword}{private}:} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00046}00046 \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDbcParser_ada086584d371c08dd93b75fb7965f13b}{IsFrameLine}} (\textcolor{keyword}{const} std::string \&line);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00047}00047 \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDbcParser_ace3d3432a55707bc286a994aa205fed1}{IsSignalLine}} (\textcolor{keyword}{const} std::string \&line);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00048}00048 \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{classDbcParser_ae3488a0a6c64dc95e4ed289e77579feb}{IsCommentLine}} (\textcolor{keyword}{const} std::string \&line);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00049}00049 \textcolor{keyword}{static} std::string \mbox{\hyperlink{classDbcParser_a1ae77c4c356af3d7b01a30044366f02b}{Trim}} (\textcolor{keyword}{const} std::string \&text);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00050}00050 \textcolor{keyword}{static} std::vector \mbox{\hyperlink{classDbcParser_a0c1cc3c58f33473bf426a77b7a25c529}{SplitReceivers}} (\textcolor{keyword}{const} std::string \&text);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00051}00051 \textcolor{keyword}{static} std::uint32\_t \mbox{\hyperlink{classDbcParser_a8a7e8fc517e40beab87a8a1dbad2b324}{TryExtractPgn}} (std::uint32\_t canId, \textcolor{keywordtype}{bool} isExtended, \textcolor{keywordtype}{bool} \&hasPgn);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00052}00052 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00053}00053 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{classDbcParser_a94d140d9442e4989b5b2ea7662c2debf}{NormalizeCanId}} (std::uint32\_t rawCanId,} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00054}00054 std::uint32\_t \&normalizedCanId,} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00055}00055 \textcolor{keywordtype}{bool} \&isExtended);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00056}00056 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00057}00057 \textcolor{keyword}{static} \mbox{\hyperlink{structFrameInfo}{FrameInfo}} \mbox{\hyperlink{classDbcParser_a6d73bb1885e59aecd8202e93a7cd392a}{ParseFrameLine}} (\textcolor{keyword}{const} std::string \&line);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00058}00058 \textcolor{keyword}{static} \mbox{\hyperlink{structSignalInfo}{SignalInfo}} \mbox{\hyperlink{classDbcParser_a4cbce88d08b1f72903ecf1bce41de5d2}{ParseSignalLine}} (\textcolor{keyword}{const} std::string \&line);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00059}00059 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00060}00060 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{classDbcParser_aa662b34694fd8b3edd757f36cb064c5c}{ParseCommentLine}} (\textcolor{keyword}{const} std::string \&line, \mbox{\hyperlink{structDbcDatabase}{DbcDatabase}} \&database);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00061}00061 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00062}00062 \textcolor{keyword}{static} \mbox{\hyperlink{structFrameInfo}{FrameInfo}} *\mbox{\hyperlink{classDbcParser_ab1fee32cb845573ce10949b4bec721f9}{FindFrameById}} (\mbox{\hyperlink{structDbcDatabase}{DbcDatabase}} \&database,} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00063}00063 std::uint32\_t canId,} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00064}00064 \textcolor{keywordtype}{bool} isExtended);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00065}00065 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00066}00066 \textcolor{keyword}{static} \mbox{\hyperlink{structSignalInfo}{SignalInfo}} *\mbox{\hyperlink{classDbcParser_ab7b95be4433c56cc855bedb08b96a71a}{FindSignalByName}} (\mbox{\hyperlink{structFrameInfo}{FrameInfo}} \&frame, \textcolor{keyword}{const} std::string \&signalName);} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00067}00067 \};} \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00068}00068 } \DoxyCodeLine{\Hypertarget{dbc__parser_8h_source_l00069}00069 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* DBC\_PARSER\_H */}\textcolor{preprocessor}{}} \end{DoxyCode}