[ros-users] Message construction with memcpy
morris at ee.ccny.cuny.edu
Fri Jul 9 00:44:06 UTC 2010
On Thu, 2010-07-08 at 17:22 -0700, Josh Faust wrote:
> Using memcpy is not possible right now due to the Message base class
> (which is going away in the future). Even once that's gone though
> it's unlikely to work for most messages. For example:
> struct A
> char a;
> int b;
> sizeof(A) == 8 (not 5), and offsetof(A, b) == 4 (not 1) on x64, but
> may be different on different architectures.
I suppose something like this will also have alignment issues.
> If the data is in the ROS serialization format (see the table under
> built-in types
> at http://www.ros.org/wiki/msg#Message_Description_Specification), you
> may be able to use the ROS serialization code
> Unless you're doing this for a large number of devices/messages, it's
> probably easiest (and least brittle) to read the individual values
> manually into the message.
Right now I have 8 messages types and about 100 values total, so I would
like a better solution. I'll take a look at deserializing the objects.
Do I have to worry about endianness when using the serialization code?
More information about the ros-users