00001 00002 #include <std_msgs/ColorRGBA.h> 00003 #include <std_msgs/UInt32MultiArray.h> 00004 #include <std_msgs/UInt32.h> 00005 #include <std_msgs/UInt64.h> 00006 #include <std_msgs/UInt64MultiArray.h> 00007 #include <std_msgs/String.h> 00008 #include <std_msgs/Empty.h> 00009 #include <std_msgs/ByteMultiArray.h> 00010 #include <std_msgs/UInt8MultiArray.h> 00011 #include <std_msgs/Int64.h> 00012 #include <std_msgs/UInt16.h> 00013 #include <std_msgs/Int64MultiArray.h> 00014 #include <std_msgs/Duration.h> 00015 #include <std_msgs/Float32MultiArray.h> 00016 #include <std_msgs/Int8MultiArray.h> 00017 #include <std_msgs/Byte.h> 00018 #include <std_msgs/Int16MultiArray.h> 00019 #include <std_msgs/Int16.h> 00020 #include <std_msgs/UInt16MultiArray.h> 00021 #include <std_msgs/Float64MultiArray.h> 00022 #include <std_msgs/Time.h> 00023 #include <std_msgs/Header.h> 00024 #include <std_msgs/Float64.h> 00025 #include <std_msgs/Int32MultiArray.h> 00026 #include <std_msgs/Int8.h> 00027 #include <std_msgs/MultiArrayDimension.h> 00028 #include <std_msgs/Float32.h> 00029 #include <std_msgs/Bool.h> 00030 #include <std_msgs/Char.h> 00031 #include <std_msgs/UInt8.h> 00032 #include <std_msgs/Int32.h> 00033 #include <std_msgs/MultiArrayLayout.h> 00034 00035 #include "ros_msg_transporter.hpp" 00036 #include "RosLib.hpp" 00037 #include <rtt/types/TransportPlugin.hpp> 00038 #include <rtt/types/TypekitPlugin.hpp> 00039 00040 namespace ros_integration { 00041 using namespace RTT; 00042 struct ROSstd_msgsPlugin 00043 : public types::TransportPlugin 00044 { 00045 bool registerTransport(std::string name, types::TypeInfo* ti) 00046 { 00047 if(name == "/std_msgs/ColorRGBA") 00048 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::ColorRGBA>()); 00049 if(name == "/std_msgs/UInt32MultiArray") 00050 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::UInt32MultiArray>()); 00051 if(name == "/std_msgs/UInt32") 00052 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::UInt32>()); 00053 if(name == "/std_msgs/UInt64") 00054 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::UInt64>()); 00055 if(name == "/std_msgs/UInt64MultiArray") 00056 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::UInt64MultiArray>()); 00057 if(name == "/std_msgs/String") 00058 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::String>()); 00059 if(name == "/std_msgs/Empty") 00060 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Empty>()); 00061 if(name == "/std_msgs/ByteMultiArray") 00062 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::ByteMultiArray>()); 00063 if(name == "/std_msgs/UInt8MultiArray") 00064 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::UInt8MultiArray>()); 00065 if(name == "/std_msgs/Int64") 00066 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Int64>()); 00067 if(name == "/std_msgs/UInt16") 00068 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::UInt16>()); 00069 if(name == "/std_msgs/Int64MultiArray") 00070 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Int64MultiArray>()); 00071 if(name == "/std_msgs/Duration") 00072 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Duration>()); 00073 if(name == "/std_msgs/Float32MultiArray") 00074 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Float32MultiArray>()); 00075 if(name == "/std_msgs/Int8MultiArray") 00076 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Int8MultiArray>()); 00077 if(name == "/std_msgs/Byte") 00078 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Byte>()); 00079 if(name == "/std_msgs/Int16MultiArray") 00080 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Int16MultiArray>()); 00081 if(name == "/std_msgs/Int16") 00082 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Int16>()); 00083 if(name == "/std_msgs/UInt16MultiArray") 00084 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::UInt16MultiArray>()); 00085 if(name == "/std_msgs/Float64MultiArray") 00086 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Float64MultiArray>()); 00087 if(name == "/std_msgs/Time") 00088 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Time>()); 00089 if(name == "/std_msgs/Header") 00090 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Header>()); 00091 if(name == "/std_msgs/Float64") 00092 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Float64>()); 00093 if(name == "/std_msgs/Int32MultiArray") 00094 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Int32MultiArray>()); 00095 if(name == "/std_msgs/Int8") 00096 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Int8>()); 00097 if(name == "/std_msgs/MultiArrayDimension") 00098 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::MultiArrayDimension>()); 00099 if(name == "/std_msgs/Float32") 00100 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Float32>()); 00101 if(name == "/std_msgs/Bool") 00102 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Bool>()); 00103 if(name == "/std_msgs/Char") 00104 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Char>()); 00105 if(name == "/std_msgs/UInt8") 00106 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::UInt8>()); 00107 if(name == "/std_msgs/Int32") 00108 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::Int32>()); 00109 if(name == "/std_msgs/MultiArrayLayout") 00110 return ti->addProtocol(ORO_ROS_PROTOCOL_ID,new RosMsgTransporter<std_msgs::MultiArrayLayout>()); 00111 00112 return false; 00113 } 00114 00115 std::string getTransportName() const { 00116 return "ros"; 00117 } 00118 00119 std::string getTypekitName() const { 00120 return std::string("ros-")+"std_msgs"; 00121 } 00122 std::string getName() const { 00123 return std::string("rtt-ros-") + "std_msgs" + "-transport"; 00124 } 00125 00126 }; 00127 } 00128 00129 ORO_TYPEKIT_PLUGIN( ros_integration::ROSstd_msgsPlugin )