public void CanSerializeEnumMessageAndDeserializeWithoutEnum() { var typeRegistry = new MessageTypeRegistry(); var serializer = new RosMessageSerializer(typeRegistry); var ms = new MemoryStream(); const int expectedGoalId = 17; const byte expectedStatus = 6; const string expectedText = "test"; var message = new EnumGoalStatus { GoalId = expectedGoalId, Status = (GoalStatusValue)expectedStatus, Text = expectedText }; serializer.Serialize(message, ms); ms.ToArray().Should().NotBeNull(); ms.Position = 0; var deserializedMessage = (GoalStatus)serializer.Deserialize(typeof(GoalStatus), ms); deserializedMessage.Should().NotBeNull(); deserializedMessage.GoalId.Should().Be(expectedGoalId); deserializedMessage.Status.Should().Be(expectedStatus); deserializedMessage.Text.Should().Be(expectedText); }
public void CanSerializeEquivalentIntMessageReverse() { var typeRegistry = new MessageTypeRegistry(); var serializer = new RosMessageSerializer(typeRegistry); var ms = new MemoryStream(); const int expectedValue = 17; const string expectedText = "It could be any string"; var message = new EquivalentIntMessages.ShortMessage() { Value = expectedValue, Text = expectedText }; serializer.Serialize(message, ms); ms.ToArray().Should().NotBeNull(); ms.Position = 0; var deserializedMessage = (EquivalentIntMessages.IntMessage)serializer.Deserialize(typeof(EquivalentIntMessages.IntMessage), ms); deserializedMessage.Should().NotBeNull(); deserializedMessage.Value.Should().Be(expectedValue); deserializedMessage.Text.Should().Be(expectedText); }
public static PartialMessageDeserializer CreateFromStream(Stream stream, RosMessageSerializer serializer) { var goalMessage = new MemoryStream(); stream.CopyTo(goalMessage); goalMessage.Position = 0; return(new PartialMessageDeserializer(goalMessage, serializer)); }
// TODO: Avoid default hardcoded initialization static RosbagReader() { var serializer = new RosMessageSerializer(new MessageTypeRegistry()); serializer.UseUmlRoboticsRos(); serializer.UseIntegROSActions(); MessageSerializer = serializer; Instance = new RobSharperRosbagReaderAdapter(serializer); }
public static void UseUmlRoboticsRos(this RosMessageSerializer serializer) { if (!UmlRoboticsAdapterTypeLoader.AssemblyAvailable) { return; } var typeInfoFactory = UmlRoboticsAdapterTypeLoader.CreateTypeInfoFactory(); var messageFormatter = UmlRoboticsAdapterTypeLoader.CreateFormatter(); serializer.MessageTypeRegistry.RosMessageTypeInfoFactories.Add(typeInfoFactory); serializer.MessageFormatters.Add(messageFormatter); }
public void CanSerializeEmptyMessage() { var typeRegistry = new MessageTypeRegistry(); var serializer = new RosMessageSerializer(typeRegistry); var ms = new MemoryStream(); var message = new Empty(); serializer.Serialize(message, ms); ms.ToArray().Should().NotBeNull(); ms.Position = 0; var deserializedMessage = serializer.Deserialize(message.GetType(), ms); deserializedMessage.Should().NotBeNull(); deserializedMessage.Should().NotBeSameAs(message); }
private void Test <TMessage>(TMessage message) where TMessage : IIntValues { var serializer = new RosMessageSerializer(new MessageTypeRegistry()); var ms = new MemoryStream(); int[] expectedValues = { 1, 2, 3, 4, 5 }; int expectedSum = 15; message.Values = expectedValues; serializer.Serialize(message, ms); ms.ToArray().Should().NotBeNull(); ms.Position = 0; var deserializedMessage = (TMessage)serializer.Deserialize(typeof(TMessage), ms); deserializedMessage.Should().NotBeNull(); deserializedMessage.Values.All(x => x > 0).Should().BeTrue("all items should be > 0"); deserializedMessage.Values.Sum().Should().Be(expectedSum, "the sum of all items should be 15"); }
public RobSharperRosbagReaderAdapter(RosMessageSerializer serializer) { _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); }
public static void UseIntegROSActions(this RosMessageSerializer serializer) { serializer.MessageTypeRegistry.RosMessageTypeInfoFactories.Add(new IntegrosActionTypeInfoFactory()); serializer.MessageFormatters.Add(new ActionFormatter(serializer)); }
private PartialMessageDeserializer(MemoryStream data, RosMessageSerializer serializer) { _data = data; _serializer = serializer; }
private static object DeserializeActionResult(SerializationContext context, RosBinaryReader reader, IRosMessageTypeInfo messageTypeInfo, RosMessageSerializer serializer) { var header = Deserialize <Header>(context, reader); var goalStatus = Deserialize <GoalStatus>(context, reader); var partialMessageDeserializer = PartialMessageDeserializer.CreateFromStream(context.Stream, serializer); return(new ActionResult(header, goalStatus, partialMessageDeserializer)); }
private static ActionGoal DeserializeActionGoal(SerializationContext context, RosBinaryReader reader, IRosMessageTypeInfo messageTypeInfo, RosMessageSerializer serializer) { var header = Deserialize <Header>(context, reader); var goalId = Deserialize <GoalID>(context, reader); var partialMessageDeserializer = PartialMessageDeserializer.CreateFromStream(context.Stream, serializer); return(new ActionGoal(header, goalId, partialMessageDeserializer)); }
public ActionFormatter(RosMessageSerializer serializer) { Serializer = serializer; }
public RobSharperRecordedBagMessage(BagMessage bagMessage, RosMessageSerializer serializer) { _bagMessage = bagMessage ?? throw new ArgumentNullException(nameof(bagMessage)); _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer)); }