ibeo_lux_ros_msg_handler.h
Go to the documentation of this file.
00001 /*
00002  * Unpublished Copyright (c) 2009-2019 AutonomouStuff, LLC, All Rights Reserved.
00003  *
00004  * This file is part of the ibeo_lux ROS 1.0 driver which is released under the MIT license.
00005  * See file LICENSE included with this software or go to https://opensource.org/licenses/MIT for full license details.
00006  */
00007 
00008 #ifndef IBEO_LUX_IBEO_LUX_ROS_MSG_HANDLER_H
00009 #define IBEO_LUX_IBEO_LUX_ROS_MSG_HANDLER_H
00010 
00011 #include <ibeo_lux/ibeo_lux_common.h>
00012 
00013 #include <string>
00014 #include <vector>
00015 
00016 using namespace AS::Drivers::Ibeo;
00017 
00018 namespace AS
00019 {
00020 namespace Drivers
00021 {
00022 namespace IbeoLux
00023 {
00024 class IbeoLuxRosMsgHandler
00025 {
00026 public:
00027   void fillAndPublish(const uint8_t& type_id,
00028                       const std::string& frame_id,
00029                       const ros::Publisher& pub,
00030                       IbeoTxMessage * parser_class);
00031   void fillPointcloud(
00032       const std::vector<Point3DL>& points,
00033       pcl::PointCloud<pcl::PointXYZL> * new_msg);
00034   void fillContourPoints(
00035       const std::vector<Point3D>& points,
00036       visualization_msgs::Marker * new_msg,
00037       const std::string& frame_id);
00038   void fillMarkerArray(
00039     const std::vector<IbeoObject>& objects,
00040     visualization_msgs::MarkerArray * new_msg,
00041     const std::string& frame_id);
00042 
00043 private:
00044   ros::Time ntp_to_ros_time(const NTPTime& time);
00045 
00046   void fillIbeoHeader(
00047       const IbeoDataHeader& class_header,
00048       ibeo_msgs::IbeoDataHeader * msg_header);
00049   void fill2030(
00050     IbeoTxMessage * parser_class,
00051     ibeo_msgs::ErrorWarning * new_msg,
00052     const std::string& frame_id);
00053   void fill2202(
00054     IbeoTxMessage * parser_class,
00055     ibeo_msgs::ScanData2202 * new_msg,
00056     const std::string& frame_id);
00057   void fill2204(
00058     IbeoTxMessage * parser_class,
00059     ibeo_msgs::ScanData2204 * new_msg,
00060     const std::string& frame_id);
00061   void fill2205(
00062     IbeoTxMessage * parser_class,
00063     ibeo_msgs::ScanData2205 * new_msg,
00064     const std::string& frame_id);
00065   void fill2221(
00066     IbeoTxMessage * parser_class,
00067     ibeo_msgs::ObjectData2221 * new_msg,
00068     const std::string& frame_id);
00069   void fill2225(
00070     IbeoTxMessage * parser_class,
00071     ibeo_msgs::ObjectData2225 * new_msg,
00072     const std::string& frame_id);
00073   void fill2280(
00074     IbeoTxMessage * parser_class,
00075     ibeo_msgs::ObjectData2280 * new_msg,
00076     const std::string& frame_id);
00077   void fill2403(
00078     IbeoTxMessage * parser_class,
00079     ibeo_msgs::CameraImage * new_msg,
00080     const std::string& frame_id);
00081   void fill2805(
00082     IbeoTxMessage * parser_class,
00083     ibeo_msgs::HostVehicleState2805 * new_msg,
00084     const std::string& frame_id);
00085   void fill2806(
00086     IbeoTxMessage * parser_class,
00087     ibeo_msgs::HostVehicleState2806 * new_msg,
00088     const std::string& frame_id);
00089   void fill2807(
00090     IbeoTxMessage * parser_class,
00091     ibeo_msgs::HostVehicleState2807 * new_msg,
00092     const std::string& frame_id);
00093   visualization_msgs::Marker createWireframeMarker(
00094       const float& center_x,
00095       const float& center_y,
00096       float size_x,
00097       float size_y,
00098       const float& size_z);
00099 };
00100 }  // namespace IbeoLux
00101 }  // namespace Drivers
00102 }  // namespace AS
00103 
00104 #endif  // IBEO_LUX_IBEO_LUX_ROS_MSG_HANDLER_H


ibeo_lux
Author(s): Joe Kale , Joshua Whitley
autogenerated on Sat Jun 8 2019 19:59:06