示例#1
0
        public void TestTransformStampedMessage()
        {
            Assert.True(BuiltIns.GetMessageType <MyTransformStamped>() == MyTransformStamped.RosMessageType);
            Assert.True(BuiltIns.GetMd5Sum <MyTransformStamped>() == BuiltIns.GetMd5Sum <TransformStamped>());

            time             now  = time.Now();
            TransformStamped real = new TransformStamped()
            {
                Header       = new Header(1, now, "Frame"),
                ChildFrameId = "Abcd",
                Transform    = Transform.Identity
            };

            MyTransformStamped wrapped = new MyTransformStamped()
            {
                Header       = new Header(1, now, "Frame"),
                ChildFrameId = "Abcd",
                Transform    = Transform.Identity
            };

            byte[] messageBytes      = real.SerializeToArray();
            byte[] otherMessageBytes = wrapped.SerializeToArray();

            Assert.True(messageBytes.SequenceEqual(otherMessageBytes));

            var otherWrapped = wrapped.DeserializeFromArray(messageBytes);

            Assert.True(wrapped.Header == real.Header);
            Assert.True(wrapped.ChildFrameId == real.ChildFrameId);
            Assert.True(wrapped.Transform == real.Transform);
        }
示例#2
0
        public void TestDynamicMessageWithDependencies()
        {
            const string fullDependencies = @"
            Header header
            string child_frame_id # the frame id of the child frame
            geometry_msgs/Transform transform
            ================================================================================
            MSG: std_msgs/Header
            uint32 seq
            time stamp
            string frame_id
            ================================================================================
            MSG: geometry_msgs/Transform
            Vector3 translation
            Quaternion rotation
            ================================================================================
            MSG: geometry_msgs/Vector3
            float64 x
            float64 y
            float64 z
            ================================================================================
            MSG: geometry_msgs/Quaternion
            float64 x
            float64 y
            float64 z
            float64 w
            ";

            DynamicMessage message =
                DynamicMessage.CreateFromDependencyString("iviz_test/TransformStamped", fullDependencies);

            var realTransformStamped = new TransformStamped();

            Assert.True(message.RosInstanceMd5Sum == TransformStamped.RosMd5Sum);
            Assert.True(message.RosMessageLength == realTransformStamped.RosMessageLength);

            byte[] messageBytes      = message.SerializeToArray();
            byte[] otherMessageBytes = realTransformStamped.SerializeToArray();

            Assert.True(messageBytes.SequenceEqual(otherMessageBytes));
        }