internal Message AddPlayerSuccess(Player player) { var data = new SerializableStorage(); data.Add("Id", player.Id); return(CreateMessage(PlayerServerMessageType.Success, data)); }
internal Message PlayerRemoved(Player player) { var data = new SerializableStorage(); data.Add("PlayerId", player.Id); return(CreateMessage(PlayerServerMessageType.PlayerRemoved, data)); }
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)); }
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)); }
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)); }
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)); }
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)); } }
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)); }
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)); }
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() }
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)); } }
private Message CreateMessage(PlayerServerMessageType type, SerializableStorage data) { return(new Message("Player", type.ToString(), data)); }
protected Message CreateMessage(T type, SerializableStorage data) { return(new Message(Module, type.ToString(), data)); }
/// <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"); } } }
public ParserResult(bool success, T value, SerializableStorage context) { Success = success; Context = context; Value = value; }