DbcLib 1.0
CAN DBC C++ library.
Loading...
Searching...
No Matches
dbcfile.h
Go to the documentation of this file.
1/*
2* Copyright 2022 Ingemar Hedvall
3* SPDX-License-Identifier: MIT
4 */
8#pragma once
9#include <string>
10#include <memory>
11#include "dbc/network.h"
12#include "dbc/dbcmessage.h"
13
14namespace dbc {
15
22class DbcFile {
23 public:
25 void Filename(const std::string& filename) {filename_ = filename; }
27 [[nodiscard]] const std::string& Filename() const {return filename_; }
28
30 [[nodiscard]] std::string Name() const;
31
33 [[nodiscard]] const std::string& LastError() const { return last_error_; }
34
36 [[nodiscard]] Network* GetNetwork() { return network_.get(); }
38 [[nodiscard]] const Network* GetNetwork() const { return network_.get(); }
39
41 [[nodiscard]] bool ParseFile();
42
49 void BaseTime(uint64_t ns1970) {base_time_ = ns1970;}
51 [[nodiscard]] uint64_t BaseTime() const {return base_time_;}
52
54 void SetMessageSize(size_t nof_messages);
56 void AddMessage(size_t index, const DbcMessage& message);
58 bool ParseMessage(const DbcMessage& message);
60 void ResetSampleCounter() const;
70
71 private:
73 bool ParseStandardCAN(const DbcMessage& message);
75 bool ParseJ1939(const DbcMessage& message);
77 bool ParseNMEA2000(const DbcMessage& message);
78 std::string filename_;
79 mutable std::string last_error_;
80 std::unique_ptr<Network> network_;
81 std::vector<DbcMessage> message_list_;
82 uint64_t base_time_ = 0;
83};
84
85} // namespace dbc
Main user object that is an interface against a DBC file.
Definition: dbcfile.h:22
uint64_t BaseTime() const
Returns the base (start) time of first message.
Definition: dbcfile.h:51
void ReparseMessageList()
Reparse the message queue.
bool ParseMessage(const DbcMessage &message)
Parses the message into signal values.
void SetMessageSize(size_t nof_messages)
Sets the maximum message queue size.
void ResetSampleCounter() const
Resets the sample counter for all signals.
const std::string & Filename() const
Returns the file name with full path.
Definition: dbcfile.h:27
std::string Name() const
Returns the File name without path and extension.
void Filename(const std::string &filename)
Sets the file name. Full path required.
Definition: dbcfile.h:25
const std::string & LastError() const
Returns the last (parser) error text.
Definition: dbcfile.h:33
Network * GetNetwork()
Returns the network object.
Definition: dbcfile.h:36
const Network * GetNetwork() const
Returns the network object.
Definition: dbcfile.h:38
bool ParseFile()
Parses the DBC file. Returns true on success.
void BaseTime(uint64_t ns1970)
Start time of messages.
Definition: dbcfile.h:49
void AddMessage(size_t index, const DbcMessage &message)
Adds q message to the message queue.
Wrapper class around a CAN message.
Definition: dbcmessage.h:21
Interface against a DBC network configuration.
Definition: network.h:39
Wrapper around a CAN message.
Main namespace for the DBC library.
Definition: attribute.h:13
Defines a DBC network configuration object.