26 #include <icl_sourcesink/SimpleURI.h> 37 icl_sourcesink::SimpleURI parsed_uri(uri);
39 std::string can_mask =
"";
40 boost::optional<std::string> uri_can_mask = parsed_uri.getQuery<std::string>(
"can_mask");
43 can_mask = *uri_can_mask;
47 can_mask = icl_core::config::getDefault<std::string>(
"/icl_hardware_can/can_mask",
"");
72 if (input_msg->
id == 0 && input_msg->
dlc == 0 && input_msg->
rtr == 0)
81 CanMatrix::const_iterator mask_iter =
m_can_mask.find(input_msg->
id);
84 for (std::size_t i = 0; i < mask_iter->second.size(); ++i)
87 parseCanMessage<double>(*input_msg,
88 mask_iter->second.at(i).start_bit,
89 mask_iter->second.at(i).signal_length,
90 mask_iter->second.at(i).conversion,
91 mask_iter->second.at(i).offset,
92 mask_iter->second.at(i).lower_border,
93 mask_iter->second.at(i).upper_border,
94 mask_iter->second.at(i).little_endian,
95 mask_iter->second.at(i).signedness,
99 mask_iter->second.at(i).description,
100 mask_iter->second.at(i).unit));
Implements a struct representing a can message.
virtual DataHeader & header()
virtual bool filter(const icl_core::Stamped< tCanMessage > &input_data, icl_core::Stamped< InterpretedCanMessages > &output_data)
#define LOGGING_DEBUG(streamname, arg)
CanMatrix m_can_mask
Describes how the CAN traffic is to be interpreted.
ThreadStream & endl(ThreadStream &stream)
virtual ~HardwareCanFilterInterpretMessage()
Destructor.
#define LOGGING_WARNING(streamname, arg)
HardwareCanFilterInterpretMessage(const std::string &uri="HardwareCanFilterInterpretMessage", const std::string &name="UnnamedHardwareCanFilterInterpretMessage")
Constructor.
const CanMatrix & getCanMatrix() const
const bool isActive() const
std::vector< InterpretedCanMessage > InterpretedCanMessages