Go to the documentation of this file.00001
00002
00003
00004
00005 #ifndef TINYCAN_MESSAGE_CANMSG_H
00006 #define TINYCAN_MESSAGE_CANMSG_H
00007
00008
00009 #include <string>
00010 #include <vector>
00011 #include <map>
00012
00013 #include <ros/types.h>
00014 #include <ros/serialization.h>
00015 #include <ros/builtin_message_traits.h>
00016 #include <ros/message_operations.h>
00017
00018
00019 namespace tinycan
00020 {
00021 template <class ContainerAllocator>
00022 struct CanMsg_
00023 {
00024 typedef CanMsg_<ContainerAllocator> Type;
00025
00026 CanMsg_()
00027 : id(0)
00028 , len(0)
00029 , data() {
00030 data.assign(0);
00031 }
00032 CanMsg_(const ContainerAllocator& _alloc)
00033 : id(0)
00034 , len(0)
00035 , data() {
00036 data.assign(0);
00037 }
00038
00039
00040
00041 typedef int32_t _id_type;
00042 _id_type id;
00043
00044 typedef int32_t _len_type;
00045 _len_type len;
00046
00047 typedef boost::array<uint8_t, 8> _data_type;
00048 _data_type data;
00049
00050
00051
00052
00053 typedef boost::shared_ptr< ::tinycan::CanMsg_<ContainerAllocator> > Ptr;
00054 typedef boost::shared_ptr< ::tinycan::CanMsg_<ContainerAllocator> const> ConstPtr;
00055
00056 };
00057
00058 typedef ::tinycan::CanMsg_<std::allocator<void> > CanMsg;
00059
00060 typedef boost::shared_ptr< ::tinycan::CanMsg > CanMsgPtr;
00061 typedef boost::shared_ptr< ::tinycan::CanMsg const> CanMsgConstPtr;
00062
00063
00064
00065
00066
00067 template<typename ContainerAllocator>
00068 std::ostream& operator<<(std::ostream& s, const ::tinycan::CanMsg_<ContainerAllocator> & v)
00069 {
00070 ros::message_operations::Printer< ::tinycan::CanMsg_<ContainerAllocator> >::stream(s, "", v);
00071 return s;
00072 }
00073
00074 }
00075
00076 namespace ros
00077 {
00078 namespace message_traits
00079 {
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091 template <class ContainerAllocator>
00092 struct IsFixedSize< ::tinycan::CanMsg_<ContainerAllocator> >
00093 : TrueType
00094 { };
00095
00096 template <class ContainerAllocator>
00097 struct IsFixedSize< ::tinycan::CanMsg_<ContainerAllocator> const>
00098 : TrueType
00099 { };
00100
00101 template <class ContainerAllocator>
00102 struct IsMessage< ::tinycan::CanMsg_<ContainerAllocator> >
00103 : TrueType
00104 { };
00105
00106 template <class ContainerAllocator>
00107 struct IsMessage< ::tinycan::CanMsg_<ContainerAllocator> const>
00108 : TrueType
00109 { };
00110
00111 template <class ContainerAllocator>
00112 struct HasHeader< ::tinycan::CanMsg_<ContainerAllocator> >
00113 : FalseType
00114 { };
00115
00116 template <class ContainerAllocator>
00117 struct HasHeader< ::tinycan::CanMsg_<ContainerAllocator> const>
00118 : FalseType
00119 { };
00120
00121
00122 template<class ContainerAllocator>
00123 struct MD5Sum< ::tinycan::CanMsg_<ContainerAllocator> >
00124 {
00125 static const char* value()
00126 {
00127 return "f00f39a5c6b7dafc7c5418c2221de64c";
00128 }
00129
00130 static const char* value(const ::tinycan::CanMsg_<ContainerAllocator>&) { return value(); }
00131 static const uint64_t static_value1 = 0xf00f39a5c6b7dafcULL;
00132 static const uint64_t static_value2 = 0x7c5418c2221de64cULL;
00133 };
00134
00135 template<class ContainerAllocator>
00136 struct DataType< ::tinycan::CanMsg_<ContainerAllocator> >
00137 {
00138 static const char* value()
00139 {
00140 return "tinycan/CanMsg";
00141 }
00142
00143 static const char* value(const ::tinycan::CanMsg_<ContainerAllocator>&) { return value(); }
00144 };
00145
00146 template<class ContainerAllocator>
00147 struct Definition< ::tinycan::CanMsg_<ContainerAllocator> >
00148 {
00149 static const char* value()
00150 {
00151 return "int32 id\n\
00152 int32 len\n\
00153 uint8[8] data\n\
00154 ";
00155 }
00156
00157 static const char* value(const ::tinycan::CanMsg_<ContainerAllocator>&) { return value(); }
00158 };
00159
00160 }
00161 }
00162
00163 namespace ros
00164 {
00165 namespace serialization
00166 {
00167
00168 template<class ContainerAllocator> struct Serializer< ::tinycan::CanMsg_<ContainerAllocator> >
00169 {
00170 template<typename Stream, typename T> inline static void allInOne(Stream& stream, T m)
00171 {
00172 stream.next(m.id);
00173 stream.next(m.len);
00174 stream.next(m.data);
00175 }
00176
00177 ROS_DECLARE_ALLINONE_SERIALIZER;
00178 };
00179
00180 }
00181 }
00182
00183 namespace ros
00184 {
00185 namespace message_operations
00186 {
00187
00188 template<class ContainerAllocator>
00189 struct Printer< ::tinycan::CanMsg_<ContainerAllocator> >
00190 {
00191 template<typename Stream> static void stream(Stream& s, const std::string& indent, const ::tinycan::CanMsg_<ContainerAllocator>& v)
00192 {
00193 s << indent << "id: ";
00194 Printer<int32_t>::stream(s, indent + " ", v.id);
00195 s << indent << "len: ";
00196 Printer<int32_t>::stream(s, indent + " ", v.len);
00197 s << indent << "data[]" << std::endl;
00198 for (size_t i = 0; i < v.data.size(); ++i)
00199 {
00200 s << indent << " data[" << i << "]: ";
00201 Printer<uint8_t>::stream(s, indent + " ", v.data[i]);
00202 }
00203 }
00204 };
00205
00206 }
00207 }
00208
00209 #endif // TINYCAN_MESSAGE_CANMSG_H