Esempio n. 1
0
        internal Message AddPlayerSuccess(Player player)
        {
            var data = new SerializableStorage();

            data.Add("Id", player.Id);

            return(CreateMessage(PlayerServerMessageType.Success, data));
        }
Esempio n. 2
0
        internal Message PlayerRemoved(Player player)
        {
            var data = new SerializableStorage();

            data.Add("PlayerId", player.Id);

            return(CreateMessage(PlayerServerMessageType.PlayerRemoved, data));
        }
Esempio n. 3
0
        internal Message PlayerAdded(Player player)
        {
            var data = new SerializableStorage();

            data.Add("Player", Tuple.Create(player.Name, player.Connection.Id, player.Id, player.IsMain));

            return(CreateMessage(PlayerServerMessageType.PlayerAdded, data));
        }
Esempio n. 4
0
        internal Message RemovedFromChat(ChatRoom chat, string reason)
        {
            var data = new SerializableStorage();

            data.Add("ChatId", chat.Id);
            data.Add("Message", reason);

            return(CreateMessage(ChatServerMessages.RemovedFromChat, data));
        }
Esempio n. 5
0
        internal Message ConnectionJoinedChat(ChatRoom chat, IConnection con)
        {
            var data = new SerializableStorage();

            data.Add("ChatId", chat.Id);
            data.Add("ConnectionId", con.Id);

            return(CreateMessage(ChatServerMessages.ConnectionJoinedChat, data));
        }
        internal Message Modules(IReadOnlyCollection <IModule> loadedModules)
        {
            SerializableStorage data = new SerializableStorage();

            string[] modules = loadedModules.Select((m) => m.Name).ToArray();
            data.Add("Modules", modules);

            return(CreateMessage("ModulesRequest", data));
        }
Esempio n. 7
0
        internal Message ChatRoomDetails(ChatRoom chat)
        {
            var data = new SerializableStorage();

            data.Add("ChatId", chat.Id);
            data.Add("Name", chat.Name);
            data.Add("Connections", chat.Connections.Select(c => c.Id).ToArray());

            return(CreateMessage(ChatServerMessages.ConnectionJoinedChat, data));
        }
        internal Message AllConnections(IReadOnlyCollection <IConnection> set)
        {
            SerializableStorage data = new SerializableStorage();

            ISet <int> idSet = new HashSet <int>();

            idSet = set.Select((c) => c.Id).ToHashSet();

            data.Add("Connections", idSet);
            return(CreateMessage("AllConnections", data));
        }
Esempio n. 9
0
        public ParserResult <CommandDelegate> ParseCommand(string txt)
        {
            var tokens = Tokenizer.Tokenize(txt);

            try
            {
                var context = new SerializableStorage();
                var result  = _root.ParseSequence(tokens, context);
                return(new ParserResult <CommandDelegate>(true, result, context));
            }
            catch
            {
                return(new ParserResult <CommandDelegate>(false, null, null));
            }
        }
Esempio n. 10
0
        internal Message Players(IReadOnlyCollection <Player> info)
        {
            var data = new SerializableStorage();

            var playerData = new HashSet <Tuple <string, int, int, bool> >();

            foreach (var p in info)
            {
                playerData.Add(Tuple.Create(p.Name, p.Connection.Id, p.Id, p.IsMain));
            }

            data.Add("Players", playerData.ToArray());

            return(CreateMessage(PlayerServerMessageType.Players, data));
        }
Esempio n. 11
0
        public Message CreateMessage(string type, params object[] data)
        {
            if (!_outgoingMessageDic.ContainsKey(type))
            {
                throw new ArgumentException("Message of type '" + type + "' not found in message dictionary!");
            }

            var msg = _outgoingMessageDic[type];
            var st  = new SerializableStorage();

            if (msg.Factory != null)
            {
                st.Add("Data", msg.Factory(data));
            }
            return(new Message(msg.Module, msg.Type, st));
        }
Esempio n. 12
0
        private void terminatePreviousBehavior(string command)
        {
            if (currentBehavior != BehaviorCompositionType.None)
            {
                speaker.Speak("terminating " + Helpers.CamelCaseToSpokenString(currentBehavior.ToString()));

                switch (currentBehavior)
                {
                case BehaviorCompositionType.JoystickAndStop:
                    if (currentTrack.Count > 2)
                    {
                        // Save accumulated waypoints:
                        speaker.Speak("saving track - " + currentTrack.Count + " trackpoints");
                        // saved in:  PC:    C:\Users\sergei\AppData\Local\Packages\RobotPluckyPackage_sjh4qacv6p1wm\LocalState\MyTrack.xml
                        //            RPi:   \\172.16.1.175\c$\Data\Users\DefaultAccount\AppData\Local\Packages\RobotPluckyPackage_sjh4qacv6p1wm\LocalState
                        SerializableStorage <Track> .Save(waypointsFileName, currentTrack);
                    }
                    break;
                }
                currentBehavior = BehaviorCompositionType.None;
            }
            lastActiveTasksCount = -1;  // initiate reporting in MonitorDispatcherActivity()
        }
Esempio n. 13
0
        public T ParseSequence(List <Token <string> > sequence, SerializableStorage context)
        {
            if (Rank == sequence.Count)
            {
                if (!IsValidEnd)
                {
                    throw new NoSuchSequenceFoundException();
                }
                return(_command);
            }
            else
            {
                if (!_childrenDic.ContainsKey(sequence[Rank].Type))
                {
                    throw new NoSuchSequenceFoundException();
                }

                var nextNode = _childrenDic[sequence[Rank].Type];

                if (sequence[Rank].Type == "String")
                {
                    string txt = sequence[Rank].Value;
                    txt = txt.Substring(1, txt.Length - 2);
                    context.Add(nextNode.SequenceItem.Name, txt);
                }
                else if (sequence[Rank].Type == "Number")
                {
                    context.Add(nextNode.SequenceItem.Name, int.Parse(sequence[Rank].Value));
                }
                else if (sequence[Rank].Type == "Boolean")
                {
                    context.Add(nextNode.SequenceItem.Name, bool.Parse(sequence[Rank].Value));
                }

                return(_childrenDic[sequence[Rank].Type].ParseSequence(sequence, context));
            }
        }
Esempio n. 14
0
 private Message CreateMessage(PlayerServerMessageType type, SerializableStorage data)
 {
     return(new Message("Player", type.ToString(), data));
 }
Esempio n. 15
0
 protected Message CreateMessage(T type, SerializableStorage data)
 {
     return(new Message(Module, type.ToString(), data));
 }
Esempio n. 16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ddg"></param>
        /// <param name="speaker"></param>
        /// <param name="trackFileName">can be null, for a saved track</param>
        public BehaviorRouteFollowing(IDriveGeometry ddg, ISpeaker speaker, string trackFileName, double powerFactor = 1.0d)
            : base(ddg)
        {
            this.speaker     = speaker;
            this.powerFactor = powerFactor;

            BehaviorActivateCondition = bd =>
            {
                return(nextWp != null);
            };

            BehaviorDeactivateCondition = bd =>
            {
                return(nextWp == null);
            };

            if (String.IsNullOrWhiteSpace(trackFileName))
            {
                //speaker.Speak("Loading saved track");
                try
                {
                    missionTrack = null;

                    // Load stored waypoints:
                    // on the PC, from   C:\Users\sergei\AppData\Local\Packages\RobotPluckyPackage_sjh4qacv6p1wm\LocalState\MyTrack.xml
                    //            RPi:   \\172.16.1.175\c$\Data\Users\DefaultAccount\AppData\Local\Packages\RobotPluckyPackage_sjh4qacv6p1wm\LocalState
                    Track track = SerializableStorage <Track> .Load(savedTrackFileName).Result;

                    if (track != null)
                    {
                        missionTrack = track;
                        //speaker.Speak("Loaded file " + missionTrack.Count + " trackpoints");
                    }
                }
                catch (Exception ex)
                {
                    speaker.Speak("could not load saved track file");
                }

                if (missionTrack == null)
                {
                    speaker.Speak("failed to load saved track file");
                    missionTrack = new Track();
                }
                nextWp          = missionTrack.nextTargetWp;
                stopStartedTime = null;
            }
            else
            {
                speaker.Speak("Loading file " + trackFileName);

                missionTrack = new Track();

                try
                {
                    missionTrack.Init(trackFileName);

                    speaker.Speak("Loaded file " + missionTrack.Count + " trackpoints");

                    nextWp = missionTrack.nextTargetWp;
                }
                catch (Exception ex)
                {
                    speaker.Speak("could not load planned track file");
                }
            }
        }
Esempio n. 17
0
 public ParserResult(bool success, T value, SerializableStorage context)
 {
     Success = success;
     Context = context;
     Value   = value;
 }