16 #ifndef PSEN_SCAN_V2_IO_STATE_ROS_CONVERSIONS_H 
   17 #define PSEN_SCAN_V2_IO_STATE_ROS_CONVERSIONS_H 
   22 #include "psen_scan_v2/IOState.h" 
   23 #include "psen_scan_v2/InputPinState.h" 
   24 #include "psen_scan_v2/OutputPinState.h" 
   29 template <
typename PinStateType>
 
   33   pin_msg.pin_id.id = pin.
id();
 
   34   pin_msg.name = pin.
name();
 
   35   pin_msg.state = pin.
state();
 
   44     throw std::invalid_argument(
"IOState of Laserscan message has an invalid timestamp: " +
 
   48   ros_message.header.frame_id = frame_id;
 
   50   auto input = io_state.
input();
 
   51   std::transform(input.begin(), input.end(), std::back_inserter(ros_message.
input), [](
const auto& pin) {
 
   52     return toPinStateMsg<InputPinState>(pin);
 
   55   auto output = io_state.
output();
 
   56   std::transform(output.begin(), output.end(), std::back_inserter(ros_message.
output), [](
const auto& pin) {
 
   57     return toPinStateMsg<OutputPinState>(pin);
 
   65 #endif  // PSEN_SCAN_V2_IO_STATE_ROS_CONVERSIONS_H