public void WorkerLoopWhenNoMessages()
        {
            // arrange
            var eventWasInvoked = false;

            var dataContract = new Mock <IDataContractOperations>();

            dataContract.Setup(x => x.Deserialize(It.IsAny <SerializedMessage>()));

            var worker = new MessageDeserializer(dataContract.Object);

            worker.OnNewMessage += _ => eventWasInvoked = true;

            // act
            var messageProcessed = worker.DoWork();

            // assert
            Assert.IsFalse(messageProcessed);
            Assert.IsFalse(eventWasInvoked);

            dataContract.Verify(x => x.Deserialize(It.IsAny <SerializedMessage>()), Times.Never);
        }
예제 #2
0
        public async Task ListenToNode()
        {
            using (UdpClient client = new UdpClient(1340, AddressFamily.InterNetwork))
            {
                while (true)
                {
                    UdpReceiveResult result = await client.ReceiveAsync();

                    Message msg = MessageDeserializer.Deserialize(result.Buffer);

                    TextBoxContent += string.Format("{0:HH:mm:ss}: Answer from {1}. Message: {2}\n Balance: {3} Clock: {4}\n",
                                                    DateTime.Now,
                                                    result.RemoteEndPoint,
                                                    msg.controlBlock.Command,
                                                    msg.communicationBlock.payload.balance,
                                                    msg.communicationBlock.clock);

                    NodeFromMessage(msg).CurrentBalance = msg.communicationBlock.payload.balance;
                    NodeFromMessage(msg).CurrentClock   = msg.communicationBlock.clock.ToString();
                }
            }
        }
예제 #3
0
            public void DeserializeMessage()
            {
                var testMessage = new TestMessage();

                testMessage.Name = "Test";
                var testMessageJson = JsonConvert.SerializeObject(testMessage);

                BusBodyMessage busBodyMessage = new BusBodyMessage();

                busBodyMessage.Message = testMessageJson;
                var busBodyJson = JsonConvert.SerializeObject(busBodyMessage);

                var message = new Amazon.SQS.Model.Message
                {
                    Body = busBodyJson
                };

                var sut = new MessageDeserializer();

                var actual = sut.Deserialize <TestMessage>(message);

                actual.Name = "ExpectedMessage";
            }
예제 #4
0
 private MultiDOFJointTrajectoryMsg(MessageDeserializer deserializer)
 {
     this.header = Std.HeaderMsg.Deserialize(deserializer);
     deserializer.Read(out this.joint_names, deserializer.ReadLength());
     deserializer.Read(out this.points, MultiDOFJointTrajectoryPointMsg.Deserialize, deserializer.ReadLength());
 }
예제 #5
0
 private OctomapWithPoseMsg(MessageDeserializer deserializer)
 {
     this.header  = HeaderMsg.Deserialize(deserializer);
     this.origin  = Geometry.PoseMsg.Deserialize(deserializer);
     this.octomap = OctomapMsg.Deserialize(deserializer);
 }
예제 #6
0
 private SetBoolResponse(MessageDeserializer deserializer)
 {
     deserializer.Read(out this.success);
     deserializer.Read(out this.message);
 }
예제 #7
0
 private DiagnosticArrayMsg(MessageDeserializer deserializer)
 {
     this.header = Std.HeaderMsg.Deserialize(deserializer);
     deserializer.Read(out this.status, DiagnosticStatusMsg.Deserialize, deserializer.ReadLength());
 }
 public static LookupTransformGoal Deserialize(MessageDeserializer deserializer) => new LookupTransformGoal(deserializer);
예제 #9
0
 public static TimeReferenceMsg Deserialize(MessageDeserializer deserializer) => new TimeReferenceMsg(deserializer);
 private GetMapFeedback(MessageDeserializer deserializer)
 {
 }
 public static GetMapFeedback Deserialize(MessageDeserializer deserializer) => new GetMapFeedback(deserializer);
예제 #12
0
 GetMapActionFeedback(MessageDeserializer deserializer) : base(deserializer)
 {
     this.feedback = GetMapFeedback.Deserialize(deserializer);
 }
 private FluidPressureMsg(MessageDeserializer deserializer)
 {
     this.header = Std.HeaderMsg.Deserialize(deserializer);
     deserializer.Read(out this.fluid_pressure);
     deserializer.Read(out this.variance);
 }
 public static FluidPressureMsg Deserialize(MessageDeserializer deserializer) => new FluidPressureMsg(deserializer);
예제 #15
0
 private FrameGraphResponse(MessageDeserializer deserializer)
 {
     deserializer.Read(out this.frame_yaml);
 }
 public static PointCloudMsg Deserialize(MessageDeserializer deserializer) => new PointCloudMsg(deserializer);
 private PointCloudMsg(MessageDeserializer deserializer)
 {
     this.header = Std.HeaderMsg.Deserialize(deserializer);
     deserializer.Read(out this.points, Geometry.Point32Msg.Deserialize, deserializer.ReadLength());
     deserializer.Read(out this.channels, ChannelFloat32Msg.Deserialize, deserializer.ReadLength());
 }
 public static GoalIDMsg Deserialize(MessageDeserializer deserializer) => new GoalIDMsg(deserializer);
예제 #19
0
 private TimeReferenceMsg(MessageDeserializer deserializer)
 {
     this.header   = Std.HeaderMsg.Deserialize(deserializer);
     this.time_ref = BuiltinInterfaces.TimeMsg.Deserialize(deserializer);
     deserializer.Read(out this.source);
 }
 private GoalIDMsg(MessageDeserializer deserializer)
 {
     this.stamp = BuiltinInterfaces.TimeMsg.Deserialize(deserializer);
     deserializer.Read(out this.id);
 }
예제 #21
0
 public static DiagnosticArrayMsg Deserialize(MessageDeserializer deserializer) => new DiagnosticArrayMsg(deserializer);
    //private int RegisterStateType(string stateName, StatePeeker peeker, StatePriorityCalculator priority, StateSerializer serializer, StateDeserializer deserializer) {
    //    if(StateCodes.Contains(stateName)) {
    //        Debug.LogException(new Exception("Can not register state type [" + stateName + "] because a state already exists with that name"));
    //    }
    //    StateCodes.Add(stateName);
    //    StateSerializers.Add(serializer);
    //    StateDeserializers.Add(deserializer);
    //    StatePeekers.Add(peeker);
    //    StatePriorityCalculators.Add(priority);

    //    int stateId = StateCodes.Count - 1;
    //    return stateId;
    //}

    //public int GetStateCode(string stateName) {
    //    if(StateCodes.Contains(stateName)) {
    //        return StateCodes.IndexOf(stateName);
    //    }
    //    throw new Exception("State with name [" + stateName + "] does not exist");
    //}

    public int RegisterMessageType(string messageName, MessagePeeker peeker, MessagePriorityCalculator priority, MessageSerializer serializer, MessageDeserializer deserializer, MessageProcessor processor)
    {
        if (MessageCodes.Contains(messageName))
        {
            Debug.LogException(new Exception("Can not register message type [" + messageName + "] because a message already exists with that name"));
        }
        MessageCodes.Add(messageName);
        MessageSerializers.Add(serializer);
        MessageDeserializers.Add(deserializer);
        MessageProcessors.Add(processor);
        MessagePeekers.Add(peeker);
        MessagePriorityCalculators.Add(priority);

        int msgId = MessageCodes.Count - 1;

        return(msgId);
    }
예제 #23
0
 public static SetBoolResponse Deserialize(MessageDeserializer deserializer) => new SetBoolResponse(deserializer);
예제 #24
0
 public static PoseMsg Deserialize(MessageDeserializer deserializer) => new PoseMsg(deserializer);
예제 #25
0
 public static OctomapWithPoseMsg Deserialize(MessageDeserializer deserializer) => new OctomapWithPoseMsg(deserializer);
예제 #26
0
 private PoseMsg(MessageDeserializer deserializer)
 {
     this.position    = PointMsg.Deserialize(deserializer);
     this.orientation = QuaternionMsg.Deserialize(deserializer);
 }
예제 #27
0
 public static MultiDOFJointTrajectoryMsg Deserialize(MessageDeserializer deserializer) => new MultiDOFJointTrajectoryMsg(deserializer);
 public static PolygonStampedMsg Deserialize(MessageDeserializer deserializer) => new PolygonStampedMsg(deserializer);
예제 #29
0
        public static RBigInt Deserialize(BaseMessage baseMessage)
        {
            var deserializer = new MessageDeserializer <RBigInt>();

            return(deserializer.Deserialize(baseMessage));
        }
 private PolygonStampedMsg(MessageDeserializer deserializer)
 {
     this.header  = Std.HeaderMsg.Deserialize(deserializer);
     this.polygon = PolygonMsg.Deserialize(deserializer);
 }