DBC Framework
DBC parsing and CAN signal decoding framework
dbc_parser.h
Go to the documentation of this file.
1
12#ifndef DBC_PARSER_H
13#define DBC_PARSER_H
14
15#include <string>
16#include <vector>
17#include <cstdint>
18
19#include "dbc_database.h"
20
35class DbcParser {
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);
52
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);
59
60 static void ParseCommentLine (const std::string &line, DbcDatabase &database);
61
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);
67};
68
69#endif /* DBC_PARSER_H */
Minimal DBC parser.
Definition: dbc_parser.h:35
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