Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef _NEW_EAGLE_DBC_SIGNAL_H
00036 #define _NEW_EAGLE_DBC_SIGNAL_H
00037
00038 #include <ros/ros.h>
00039
00040 #include <string>
00041
00042 namespace NewEagle
00043 {
00044 struct DbcSignalComment
00045 {
00046 uint32_t Id;
00047 std::string SignalName;
00048 std::string Comment;
00049 };
00050
00051 enum SignType
00052 {
00053 UNSIGNED = 0,
00054 SIGNED = 1
00055 };
00056
00057 enum ByteOrder
00058 {
00059 LITTLE_END = 0,
00060 BIG_END = 1
00061 };
00062
00063 enum DataType
00064 {
00065 INT = 0,
00066 FLOAT = 1,
00067 DOUBLE = 2
00068 };
00069
00070 enum MultiplexerMode
00071 {
00072 NONE = 0,
00073 MUX_SWITCH = 1,
00074 MUX_SIGNAL = 2
00075 };
00076
00077 class DbcSignal {
00078 public:
00079 DbcSignal(
00080 uint8_t dlc,
00081 double gain,
00082 double offset,
00083 uint8_t startBit,
00084 ByteOrder endianness,
00085 uint8_t length,
00086 SignType sign,
00087 std::string name,
00088 MultiplexerMode multiplexerMode);
00089
00090 DbcSignal(
00091 uint8_t dlc,
00092 double gain,
00093 double offset,
00094 uint8_t startBit,
00095 ByteOrder endianness,
00096 uint8_t length,
00097 SignType sign,
00098 std::string name,
00099 MultiplexerMode multiplexerMode,
00100 int32_t multiplexerSwitch);
00101
00102 ~DbcSignal();
00103
00104 uint8_t GetDlc() const;
00105 double GetResult() const;
00106 double GetGain() const;
00107 double GetOffset() const;
00108 uint8_t GetStartBit() const;
00109 ByteOrder GetEndianness() const;
00110 uint8_t GetLength() const;
00111 SignType GetSign() const;
00112 std::string GetName() const;
00113 void SetResult(double result);
00114 void SetComment(NewEagle::DbcSignalComment comment);
00115 void SetInitialValue(double value);
00116 double GetInitialValue();
00117 DataType GetDataType();
00118 void SetDataType(DataType type);
00119 MultiplexerMode GetMultiplexerMode() const;
00120 int32_t GetMultiplexerSwitch() const;
00121
00122 private:
00123 uint8_t _dlc;
00124 double _result;
00125 double _gain;
00126 double _offset;
00127 uint8_t _startBit;
00128 ByteOrder _endianness;
00129 uint8_t _length;
00130 SignType _sign;
00131 std::string _name;
00132 NewEagle::DbcSignalComment _comment;
00133 double _initialValue;
00134 DataType _type;
00135 MultiplexerMode _multiplexerMode;
00136 int32_t _multiplexerSwitch;
00137 };
00138 }
00139
00140 #endif // _NEW_EAGLE_DBC_SIGNAL_H