コード例 #1
0
        public Reaction Receive(TimeSpan wait_time)
        {
            Reaction reaction = null;

            try {
                byte[] msg;
                if (wait_time > TimeSpan.Zero)
                {
                    this._socket.TryReceiveFrameBytes(wait_time, out msg);
                }
                else
                {
                    msg = this._socket.ReceiveFrameBytes();
                }

                if (msg != null && msg.Length > 0)
                {
                    var flat_reaction = FReaction.GetRootAsFReaction(new ByteBuffer(msg));
                    reaction = FBSReactionUtilities.create_reaction(flat_reaction);
                }
            } catch (Exception err) {
                Debug.Log(err);
            }

            return(reaction);
        }
コード例 #2
0
        static ReactionParameters deserialise_parameters(FReaction reaction)
        {
            if (reaction.Parameters.HasValue)
            {
                var s = StepResetObserve.Observe_;
                if (reaction.Parameters.Value.Reset)
                {
                    s = StepResetObserve.Reset_;
                }
                else if (reaction.Parameters.Value.Step)
                {
                    s = StepResetObserve.Step_;
                }

                return(new ReactionParameters(s,
                                              reaction.Parameters.Value.Terminable,
                                              reaction.Parameters.Value.Configure,
                                              reaction.Parameters.Value.Describe,
                                              reaction.Parameters.Value.EpisodeCount));
            }


            Debug.LogWarning("NULL PARAMETERS");
            return(_null_reaction_parameters);
        }
コード例 #3
0
        static MotorMotion[] create_motions(FReaction reaction)
        {
            var l       = reaction.MotionsLength;
            var motions = new MotorMotion[l];

            for (var i = 0; i < l; i++)
            {
                motions[i] = create_motion(reaction.Motions(i));
            }
            return(motions);
        }
コード例 #4
0
        static Configuration[] create_configurations(FReaction reaction)
        {
            var l = reaction.ConfigurationsLength;
            var configurations = new Configuration[l];

            for (var i = 0; i < l; i++)
            {
                configurations[i] = create_configuration(reaction.Configurations(i));
            }
            return(configurations);
        }
コード例 #5
0
        static IMotion[] deserialise_motions(FReaction reaction)
        {
            var l       = reaction.MotionsLength;
            var motions = new IMotion[l];

            for (var i = 0; i < l; i++)
            {
                motions[i] = deserialise_motion(reaction.Motions(i));
            }

            return(motions);
        }
コード例 #6
0
        static Displayable[] deserialise_displayables(FReaction reaction)
        {
            var l = reaction.DisplayablesLength;
            var configurations = new Displayable[l];

            for (var i = 0; i < l; i++)
            {
                configurations[i] = deserialise_displayable(reaction.Displayables(i));
            }

            return(configurations);
        }
コード例 #7
0
        static Unobservables deserialise_unobservables(FReaction reaction)
        {
            if (reaction.Unobservables.HasValue)
            {
                var bodies = deserialise_bodies(reaction.Unobservables.Value);

                var poses = deserialise_poses(reaction.Unobservables.Value);

                return(new Unobservables(ref bodies, ref poses));
            }

            return(new Unobservables());
        }
コード例 #8
0
        static Unobservables create_unobservables(FReaction reaction)
        {
            if (reaction.Unobservables.HasValue)
            {
                var bodies = create_bodies(reaction.Unobservables.Value);

                var poses = create_poses(reaction.Unobservables.Value);

                return(new Unobservables(bodies, poses));
            }

            return(new Unobservables());
        }
コード例 #9
0
        static ReactionParameters create_parameters(FReaction reaction)
        {
            if (reaction.Parameters.HasValue)
            {
                return(new ReactionParameters(
                           reaction.Parameters.Value.Terminable,
                           reaction.Parameters.Value.Step,
                           reaction.Parameters.Value.Reset,
                           reaction.Parameters.Value.Configure,
                           reaction.Parameters.Value.Describe,
                           reaction.Parameters.Value.EpisodeCount));
            }

            return(new ReactionParameters());
        }
コード例 #10
0
 static String deserialise_serialised_message(FReaction reaction_value)
 {
     return(reaction_value.SerialisedMessage);
 }
コード例 #11
0
 static String deserialise_simulator_configuration(FReaction reaction_value)
 {
     return(reaction_value.SerialisedMessage);
 }