Some implementation of the custom frame sender interface and the DBC loading functionality. Both compile as-is but are not functional yet. This is an in-process update.

This commit is contained in:
Collin Kidder
2015-05-17 22:16:19 -04:00
parent 057a960e5b
commit 176680672a
11 changed files with 1201 additions and 3 deletions
+77
View File
@@ -0,0 +1,77 @@
#ifndef DBC_CLASSES_H
#define DBC_CLASSES_H
#include <QString>
#include <QStringList>
/*classes to encapsulate data from a DBC file. Really, the stuff of interest
are the nodes, messages, signals, attributes, and comments.
These things sort of form a hierarchy. Nodes send and receive messages.
Messages are comprised of signals. Signals and messages have attributes.
All of them can have comments.
*/
enum DBC_SIG_VAL_TYPE
{
UNSIGNED_INT,
SIGNED_INT,
SP_FLOAT,
DP_FLOAT,
STRING
};
enum DBC_ATTRIBUTE_VAL_TYPE
{
HEX,
FLOAT,
QSTRING,
ENUM
};
class DBC_ATTRIBUTE
{
QString name;
DBC_ATTRIBUTE_VAL_TYPE type;
double startVal;
double endVal;
QStringList enumVals; //also used for STRING type but then you're assured to have only one
};
class DBC_NODE
{
public:
QString name;
QString comment;
QList<DBC_ATTRIBUTE> attributes;
};
class DBC_MESSAGE
{
int ID;
QString name;
QString comment;
int len;
DBC_NODE *sender;
QList<DBC_ATTRIBUTE> attributes;
};
class DBC_SIGNAL
{
QString name;
int startBit;
int signalSize;
bool intelByteOrder; //true is obviously little endian. False is big endian
DBC_SIG_VAL_TYPE valType;
double factor;
double bias;
double min;
double max;
DBC_NODE *receiver;
QString unitName;
QString comment;
QList<DBC_ATTRIBUTE> attributes;
};
#endif // DBC_CLASSES_H