public static int getCdrSerializedSize(sensor_msgs.msg.Image data, int current_alignment)
        {
            int initial_alignment = current_alignment;

            current_alignment += std_msgs.msg.HeaderPubSubType.getCdrSerializedSize(data.header, current_alignment);

            current_alignment += 4 + Halodi.CDR.CDRCommon.alignment(current_alignment, 4);


            current_alignment += 4 + Halodi.CDR.CDRCommon.alignment(current_alignment, 4);


            current_alignment += 4 + Halodi.CDR.CDRCommon.alignment(current_alignment, 4) + data.encoding.Length + 1;

            current_alignment += 1 + Halodi.CDR.CDRCommon.alignment(current_alignment, 1);


            current_alignment += 4 + Halodi.CDR.CDRCommon.alignment(current_alignment, 4);


            current_alignment += 4 + Halodi.CDR.CDRCommon.alignment(current_alignment, 4);
            current_alignment += (data.data.Count * 1) + Halodi.CDR.CDRCommon.alignment(current_alignment, 1);



            return(current_alignment - initial_alignment);
        }
        public static void write(sensor_msgs.msg.Image data, Halodi.CDR.CDRSerializer cdr)
        {
            std_msgs.msg.HeaderPubSubType.write(data.header, cdr);

            cdr.write_type_4(data.height);

            cdr.write_type_4(data.width);

            cdr.write_type_d(data.encoding);

            cdr.write_type_9(data.is_bigendian);

            cdr.write_type_4(data.step);

            if (data.data == null)
            {
                cdr.write_type_2(0);
            }
            else
            {
                int data_length = data.data.Count;
                cdr.write_type_2(data_length);
                for (int i0 = 0; i0 < data_length; i0++)
                {
                    cdr.write_type_9(data.data[i0]);
                }
            }
        }
Example #3
0
        public void ImagePubSub()
        {
            bool callbackTriggered = false;

            var subscription = sub_node.CreateSubscription <sensor_msgs.msg.Image>(
                "test_topic", (received_msg) =>
            {
                callbackTriggered = true;
                Assert.That(received_msg.Data.Length, Is.EqualTo(10));
            });

            var publisher = pub_node.CreatePublisher <sensor_msgs.msg.Image>("test_topic");
            var msg       = new sensor_msgs.msg.Image();

            msg.Data    = new byte[10];
            msg.Data[0] = 1;
            publisher.Publish(msg);

            Rclcs.SpinOnce(sub_node, sub_context, 0.5);

            Assert.That(callbackTriggered, Is.True);

            publisher.Dispose();
            subscription.Dispose();
        }
 public override void deserialize(MemoryStream stream, sensor_msgs.msg.Image data)
 {
     using (BinaryReader reader = new BinaryReader(stream))
     {
         Halodi.CDR.CDRDeserializer cdr = new Halodi.CDR.CDRDeserializer(reader);
         read(data, cdr);
     }
 }
 public override void serialize(sensor_msgs.msg.Image data, MemoryStream stream)
 {
     using (BinaryWriter writer = new BinaryWriter(stream))
     {
         Halodi.CDR.CDRSerializer cdr = new Halodi.CDR.CDRSerializer(writer);
         write(data, cdr);
     }
 }
Example #6
0
        public void SetImage()
        {
            var msg     = new sensor_msgs.msg.Image();
            var msgCopy = new sensor_msgs.msg.Image();

            Assert.That(msg.Data.Length, Is.EqualTo(0));
            msg.Data = new byte[10];
            msg.WriteNativeMessage();
            Assert.That(msg.Data.Length, Is.EqualTo(10));
            msg.Data = new byte[2];
            msg.ReadNativeMessage();
            Assert.That(msg.Data.Length, Is.EqualTo(10));
            msg.Data = new byte[8];
            // NOTE(sam): Writing twice seems not work
            // msg.WriteNativeMessage();
            msg.ReadNativeMessage();
            Assert.That(msg.Data.Length, Is.EqualTo(10));
            msgCopy.ReadNativeMessage(msg.Handle);
            Assert.That(msgCopy.Data.Length, Is.EqualTo(10));
        }
        public static void read(sensor_msgs.msg.Image data, Halodi.CDR.CDRDeserializer cdr)
        {
            data.header = std_msgs.msg.HeaderPubSubType.Create();
            std_msgs.msg.HeaderPubSubType.read(data.header, cdr);

            data.height = cdr.read_type_4();

            data.width = cdr.read_type_4();

            data.encoding     = cdr.read_type_d();
            data.is_bigendian = cdr.read_type_9();

            data.step = cdr.read_type_4();


            int data_length = cdr.read_type_2();

            data.data = new System.Collections.Generic.List <byte>(data_length);
            for (int i = 0; i < data_length; i++)
            {
                data.data.Add(cdr.read_type_9());
            }
        }
 public static int getCdrSerializedSize(sensor_msgs.msg.Image data)
 {
     return(getCdrSerializedSize(data, 0));
 }
 public static void Copy(sensor_msgs.msg.Image src, sensor_msgs.msg.Image target)
 {
     target.Set(src);
 }