public void WriteUInt32(uint val) { CDRWriter writer = new CDRWriter(); writer.WriteUInt32(val); CDRReader reader = new CDRReader(writer.GetBuffer().ToArray()); Assert.Equal(val, reader.ReadUInt32()); }
private void OutCallback(Zenoh.Net.Sample sample) { // received type: rcl_interfaces/msg/Log CDRReader reader = new CDRReader(sample.Payload); // builtin_interfaces/Time stamp => int32 sec + uint32 nanosec var stamp_sec = reader.ReadInt32(); var stamp_nanosec = reader.ReadUInt32(); // uint8 level var level = reader.ReadByte(); // string name var name = reader.ReadString(); // string msg var msg = reader.ReadString(); // string file var file = reader.ReadString(); // string function var function = reader.ReadString(); // uint32 line var line = reader.ReadUInt32(); Console.WriteLine("[{0}.{1}] [{2}]: {3}", stamp_sec, stamp_nanosec, name, msg); }
public void BasicTypesAlignment() { var buf = new byte[] { 0x00, 0x00, 0x00, 0x00, // Header 0xFF, // 1 byte to force padding 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // padding for 8-bytes alignment 0x0A, 0x0B, 0x0C, 0X0D, 0x0E, 0x0F, 0x01, 0X02, // uint64 0xFF, // 1 byte to force padding 0x00, 0x00, 0x00, // padding for 4-bytes alignment 0x0A, 0x0B, 0x0C, 0X0D, // uint32 0xFF, // 1 byte to force padding 0x00, // padding for 2-bytes alignment 0x0A, 0x0B, // uint16 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, // 5 bytes to force padding 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // padding for 8-bytes alignment 0x3F, 0x84, 0x7A, 0xE1, 0x47, 0xAE, 0x14, 0x7B, // double 0xFF, // 1 byte to force padding 0x00, 0x00, 0x00, // padding for 4-bytes alignment 0x3C, 0x23, 0xD7, 0x0A, // float 0xFF, // 1 byte to force padding 0x00, 0x00, 0x00, // padding for 4-bytes alignment 0x00, 0x00, 0x00, 0x0D, // "Hello World!" 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21, 0x00 }; CDRReader reader = new CDRReader(buf); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0x0A0B0C0D0E0F0102UL, reader.ReadUInt64()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0x0A0B0C0DU, reader.ReadUInt32()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0x0A0B, reader.ReadUInt16()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0.01, reader.ReadDouble()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal(0.01f, reader.ReadSingle()); Assert.Equal(0xFF, reader.ReadByte()); Assert.Equal("Hello World!", reader.ReadString()); }
public void ReadUInt32(uint expected, byte[] buf) { CDRReader reader = new CDRReader(buf); Assert.Equal(expected, reader.ReadUInt32()); }