Files
StarPilot/tools/cabana/dbc/dbcfile.h
T
Cameron Clough 0ca2fdb545 cabana(DBCFile): preserve original header (#31900)
* cabana(DBCFile): preserve original header

* add trailing space
old-commit-hash: 5a805df3402c8a0661a9b663d88378313b19784e
2024-03-18 22:37:45 -07:00

41 lines
1.1 KiB
C++

#pragma once
#include <map>
#include "tools/cabana/dbc/dbc.h"
const QString AUTO_SAVE_EXTENSION = ".tmp";
class DBCFile {
public:
DBCFile(const QString &dbc_file_name);
DBCFile(const QString &name, const QString &content);
~DBCFile() {}
bool save();
bool saveAs(const QString &new_filename);
bool autoSave();
bool writeContents(const QString &fn);
void cleanupAutoSaveFile();
QString generateDBC();
void updateMsg(const MessageId &id, const QString &name, uint32_t size, const QString &node, const QString &comment);
inline void removeMsg(const MessageId &id) { msgs.erase(id.address); }
inline const std::map<uint32_t, cabana::Msg> &getMessages() const { return msgs; }
cabana::Msg *msg(uint32_t address);
cabana::Msg *msg(const QString &name);
inline cabana::Msg *msg(const MessageId &id) { return msg(id.address); }
inline QString name() const { return name_.isEmpty() ? "untitled" : name_; }
inline bool isEmpty() const { return msgs.empty() && name_.isEmpty(); }
QString filename;
private:
void parse(const QString &content);
QString header;
std::map<uint32_t, cabana::Msg> msgs;
QString name_;
};