DBC framework
Public Member Functions | Static Private Member Functions | List of all members
DbcParser Class Reference

Minimal DBC parser. More...

#include <dbc_parser.h>

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.

Supports:

Ignores:

Definition at line 35 of file dbc_parser.h.

Member Function Documentation

◆ FindFrameById()

FrameInfo * DbcParser::FindFrameById ( DbcDatabase database,
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 ( FrameInfo frame,
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,
DbcDatabase database 
)
staticprivate

◆ ParseFile()

DbcDatabase DbcParser::ParseFile ( const std::string &  filePath) const

Parse DBC file.

Parameters
filePathPath to input file.
Returns
Parsed database.
Exceptions
std::runtime_erroron file or parse errors.

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

◆ ParseSignalLine()

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

◆ 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().


The documentation for this class was generated from the following files: