35 #ifndef CANEXTRACTOR_H_
36 #define CANEXTRACTOR_H_
42 #include <std_msgs/Bool.h>
43 #include <std_msgs/UInt8.h>
44 #include <std_msgs/UInt16.h>
45 #include <std_msgs/UInt32.h>
46 #include <std_msgs/UInt64.h>
47 #include <std_msgs/Int8.h>
48 #include <std_msgs/Int16.h>
49 #include <std_msgs/Int32.h>
50 #include <std_msgs/Int64.h>
51 #include <std_msgs/Float64.h>
53 #include <can_msgs/Frame.h>
54 #include <dataspeed_can_msgs/Frame.h>
72 unsigned short multiplexNum;
79 std::vector<RosCanSigStruct> sigs;
84 CanExtractor(
const std::string &dbc_file,
bool offline,
bool expand =
true,
bool unknown =
false);
85 CanExtractor(
const std::vector<std::string> &dbc_file,
bool offline,
bool expand =
true,
bool unknown =
false);
100 void pubCanSig(
const RosCanMsgStruct& info,
const T& sig_msg,
const ros::Time& stamp,
size_t i);
102 void pubCanMsg(
const RosCanMsgStruct& info,
const can_msgs::Frame& msg,
const ros::Time& stamp);
103 void pubCanMsg(
const RosCanMsgStruct& info,
const dataspeed_can_msgs::Frame& msg,
const ros::Time& stamp);
104 static uint64_t
unsignedSignalData(
const std::vector<uint8_t> &buffer,
const RosCanSigStruct& sig_props);
105 static int64_t
signedSignalData(
const std::vector<uint8_t> &buffer,
const RosCanSigStruct& sig_props);
119 std::map<uint32_t, RosCanMsgStruct>
msgs_;