12 #ifndef CARMA_BIMA_TELEMETRYCOMMAND_H
13 #define CARMA_BIMA_TELEMETRYCOMMAND_H
19 #define TELEMETRYIPQ "telemetry.ipq"
21 #define IFIPQ "if.ipq"
22 #define TELEMETRYCAN c
23 #define TELEMETRYLONG l
24 #define TELEMETRYSHORT s
33 class TelemetryCommand
37 typedef union {
char c;
short s;
long l;
float f;
double d;
unsigned char bytes[8]; } PayloadType;
42 unsigned char dataType_;
47 void setAddr(
unsigned short addr ) { addr_ = addr; }
49 void setPayload(
char payload ) { payload_.c = payload; }
50 void setPayload(
short payload ) { payload_.s = payload; }
51 void setPayload(
long payload ) { payload_.l = payload; }
52 void setPayload(
float payload ) { payload_.f = payload; }
53 void setPayload(
double payload ) { payload_.d = payload; }
54 void setPayload( std::vector<carma::canbus::byteType> &payload )
56 payload_.bytes[0] = payload[0];
57 payload_.bytes[1] = payload[1];
58 payload_.bytes[2] = payload[2];
59 payload_.bytes[3] = payload[3];
60 payload_.bytes[4] = payload[4];
61 payload_.bytes[5] = payload[5];
62 payload_.bytes[6] = payload[6];
63 payload_.bytes[7] = payload[7];
66 void setDataType(
unsigned char dataType ) { dataType_ = dataType; }
69 void set(
unsigned short addr,
char payload, time_t timer = 0 )
73 setPayload( payload );
76 void set(
unsigned short addr,
short payload )
80 setPayload( payload );
83 void set(
unsigned short addr,
long payload )
87 setPayload( payload );
90 void set(
unsigned short addr,
float payload )
94 setPayload( payload );
97 void set(
unsigned short addr,
double payload )
101 setPayload( payload );
104 void set( std::vector<carma::canbus::byteType> payload )
107 setPayload( payload );
110 unsigned short getAddr(
void ) {
return addr_; }
112 void getPayload(
char &payload ) { payload = payload_.c; }
113 void getPayload(
short &payload ) { payload = payload_.s; }
114 void getPayload(
long &payload ) { payload = payload_.l; }
115 void getPayload(
float &payload ) { payload = payload_.f; }
116 void getPayload(
double &payload ) { payload = payload_.d; }
118 void getPayload( std::vector<carma::canbus::byteType> &data )
121 data.push_back( payload_.bytes[0] );
122 data.push_back( payload_.bytes[1] );
123 data.push_back( payload_.bytes[2] );
124 data.push_back( payload_.bytes[3] );
125 data.push_back( payload_.bytes[4] );
126 data.push_back( payload_.bytes[5] );
127 data.push_back( payload_.bytes[6] );
128 data.push_back( payload_.bytes[7] );
131 unsigned char getDataType(
void ) {
return dataType_; }
132 unsigned char getMsgType(
void ) {
return msgType_; }
141 #endif // CARMA_BIMA_TELEMETRYCOMMAND_H
Declarations of carma::canbus types.
unsigned short msgType
Carma Message id type.