예제 #1
0
        public override void Init(object initData)
        {
            base.Init(initData);

            _szenario = initData as Szenario;
            if (_szenario != null)
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await CoreMethods.DisplayAlert("Error: 321", "The szenario doesn't exist", "OK");
                });
            }
        }
        public override void Init(object initData)
        {
            base.Init(initData);

            Szenario = Client.Szenario;
            accept   = false;

            if (Szenario == null)
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    await CoreMethods.DisplayAlert("Error: new", "The szenario doesn't exist", "OK");
                });
                return;
            }
            //Generate robot models for user interface
            Robots = new List <RobotModel>();
            foreach (var t in Szenario.Robots)
            {
                Robots.Add(new RobotModel(t));
            }
        }
예제 #3
0
        private bool NewSpectatorCmd()
        {
            //Change the user interface
            if (SzenarioController.Changed)
            {
                foreach (var t in SzenarioController.Szenarios)
                {
                    if (_szenario.Id != t.Id)
                    {
                        continue;
                    }
                    _szenario = t;
                    Robots    = new List <RobotModel>();
                    foreach (var t1 in _szenario.Robots)
                    {
                        Robots.Add(new RobotModel(t1));
                    }
                    break;
                }
                SzenarioController.Changed = false;
            }

            if (!SzenarioController.Refresh)
            {
                return(false);
            }

            //Send synchronization command to get current szenario
            var szenarios = new List <Szenario> {
                _szenario
            };
            var cmdSync = new Synchronization(CommandType.Synchronization.ToString(), SynchronizationCommandType.CurrentSzenario.ToString(), Client.Identification, szenarios, new List <Robot>());

            Client.SendCmd(cmdSync.ToJsonString());
            return(true);
        }
예제 #4
0
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        if (reader.TokenType == JsonToken.StartArray)
        {
            List <Szenario> szenarios = new List <Szenario>();
            var             jsonArray = JArray.Load(reader);

            foreach (var t in jsonArray)
            {
                if (t["type"] == null)
                {
                    throw new System.Exception("Szenario is not implemented");
                }
                switch (t["type"].ToString())
                {
                case "Control":
                    szenarios.Add(t.ToObject <Control>());
                    break;

                case "Synchron":
                    szenarios.Add(t.ToObject <Synchron>());
                    break;

                case "Follow":
                    szenarios.Add(t.ToObject <Follow>());
                    break;

                case "Flee":
                    szenarios.Add(t.ToObject <Flee>());
                    break;

                case "Catch":
                    szenarios.Add(t.ToObject <Catch>());
                    break;
                }
            }

            return(szenarios);
        }
        else if (reader.TokenType == JsonToken.StartObject)
        {
            Szenario szenario   = null;
            var      jsonObject = JObject.Load(reader);

            if (jsonObject["type"] == null)
            {
                throw new System.Exception("Szenario is not implemented");
            }
            switch (jsonObject["type"].ToString())
            {
            case "Control":
                szenario = jsonObject.ToObject <Control>();
                break;

            case "Synchron":
                szenario = jsonObject.ToObject <Synchron>();
                break;

            case "Follow":
                szenario = jsonObject.ToObject <Follow>();
                break;

            case "Flee":
                szenario = jsonObject.ToObject <Flee>();
                break;

            case "Catch":
                szenario = jsonObject.ToObject <Catch>();
                break;
            }
            return(szenario);
        }
        throw new Exception("Not defined JsonToken");
    }
 public SzenarioCommand(string pId, string pType, ClientIdentification pIdentification, Szenario pSzenario) : base(pId, pType, pIdentification)
 {
     this.szenario = pSzenario;
 }