// Update is called once per frame void Update() { if (_epiSimSocket != null) { string epiSimUrl = string.Format("{0}:{1}", _epiSimSocket.address, _epiSimSocket.port); if (_epiSimSocket.isConnected) { if (commBridge.tryAgainSockets.ContainsKey(epiSimUrl)) { if (commBridge.tryAgainSockets[epiSimUrl] == typeof(FusionSocket)) { _epiSimSocket = (EpistemicState)commBridge.FindRestClientByLabel("EpiSim"); //Debug.Log(_fusionSocket.IsConnected()); } } //string inputFromFusion = _fusionSocket.GetMessage(); //if (inputFromFusion != "") { // Debug.Log(inputFromFusion); // Debug.Log(_fusionSocket.HowManyLeft() + " messages left."); // _fusionSocket.OnFusionReceived(this, new FusionEventArgs(inputFromFusion)); //} } else { //SocketConnection _retry = socketConnections.FirstOrDefault(s => s.GetType() == typeof(FusionSocket)); //TryReconnectSocket(_fusionSocket.Address, _fusionSocket.Port, typeof(FusionSocket), ref _retry); //_fusionSocket.OnConnectionLost(this, null); if (!commBridge.tryAgainRest.ContainsKey(epiSimUrl)) { commBridge.tryAgainRest.Add(epiSimUrl, _epiSimSocket.GetType()); } } } }
private void mock() { model = new EpistemicState(); // creating Concept instances (actions) // available types: ACTION, OBJECT, PROPERTY // available modes: L, G Concept yesL = new Concept("posack", ConceptType.ACTION, ConceptMode.L); Concept yesG = new Concept("POSACK", ConceptType.ACTION, ConceptMode.G); Concept noL = new Concept("negack", ConceptType.ACTION, ConceptMode.L); Concept noG = new Concept("NEGACK", ConceptType.ACTION, ConceptMode.G); // add concepts to the epistemic model model.AddConcept(yesL); model.AddConcept(yesG); model.AddConcept(noL); model.AddConcept(noG); // add relations between them, third boolean param is bidirectional model.AddRelation(yesG, yesL, true); model.AddRelation(noG, noL, true); // now add more concepts (objects) Concept redBlock = new Concept("RED", ConceptType.OBJECT, ConceptMode.L); Concept blueBlock = new Concept("BLUE", ConceptType.OBJECT, ConceptMode.L); Concept greenBlock = new Concept("GREEN", ConceptType.OBJECT, ConceptMode.L); model.AddConcept(redBlock); model.AddConcept(blueBlock); model.AddConcept(greenBlock); model.SetEpisimUrl("http://localhost:5000"); }
public static string JsonifyUpdatedRelations(EpistemicState state, params Relation[] relations) { if (relations.Length <= 0) return "[]"; var collection = state.GetConcepts(relations[0].Origin.Type); return string.Format("[{0}]", string.Join(", ", relations.Select(relation => string.Format("\"{0}{7}{1}{7}{2}{7}{3}{7}{4}{6}{5:0.00}\"", (int) collection.Type(), (int) relation.Origin.Mode, collection.GetIndex(relation.Origin), (int) relation.Destination.Mode, collection.GetIndex(relation.Destination), relation.Certainty, CertaintySep, JsonRelationConnector )).ToArray())); }
private void second_mock() { model = new EpistemicState(); // creating Concept instances (actions) // available types: ACTION, OBJECT, PROPERTY // available modes: L, G Concept pushG = new Concept("push", ConceptType.ACTION, ConceptMode.G); Concept rightL = new Concept("RIGHT", ConceptType.PROPERTY, ConceptMode.L); model.AddConcept(pushG); model.AddConcept(rightL); // now add more concepts (objects) model.SetEpisimUrl("http://localhost:5000"); }
public static string JsonifyUpdatedConcepts(EpistemicState state, params Concept[] concepts) { if (concepts.Length <= 0) return "[]"; var updatedConceptIndices = new string[concepts.Length]; for (int i = 0; i < concepts.Length; i++) { var concept = concepts[i]; var collection = state.GetConcepts(concept.Type); updatedConceptIndices[i] = string.Format("\"{0}{5}{1}{5}{2}{4}{3:0.00}\"", (int) concept.Type, (int) concept.Mode, collection.GetIndex(concept), concept.Certainty, CertaintySep, JsonRelationConnector); } return string.Format("[{0}]", string.Join(", ", updatedConceptIndices)); }
public void TestActualModel() { model = EpistemicModel.initModel(); model.SetEpisimUrl("http://localhost:5000"); // var json = Jsonifier.JsonifyEpistemicState(model); // Debug.Log(json); model.InitiateEpisim(); var moveL = model.GetConcept("PUT", ConceptType.ACTION, ConceptMode.L); var pushL = model.GetConcept("PUSH", ConceptType.ACTION, ConceptMode.L); if ((moveL != null) && (pushL != null)) { moveL.Certainty = -1; pushL.Certainty = -1; var json = Jsonifier.JsonifyEpistemicStateInitiation(model); Debug.Log(json); model.UpdateEpisim(new[] { moveL, pushL }, new Relation[] { }); } }
// Use this for initialization void Start() { engaged = false; if (reuseModel) { idUser = true; userNameModalWindow = gameObject.AddComponent <UserNameModalWindow>(); userNameModalWindow.windowRect = new Rect(Screen.width / 2 - 185 / 2, Screen.height / 2 - 60 / 2, 185, 60); userNameModalWindow.Render = true; userNameModalWindow.AllowDrag = false; userNameModalWindow.AllowResize = false; userNameModalWindow.AllowForceClose = false; userNameModalWindow.UserNameEvent += IdentifyUser; } if (state == null) { state = initModel(); Debug.Log(state); } if (PlayerPrefs.HasKey("URLs")) { string epiSimUrlString = string.Empty; foreach (string url in PlayerPrefs.GetString("URLs").Split(';')) { if (url.Split('=')[0] == "EpiSim URL") { epiSimUrlString = url.Split('=')[1]; string epiSimUrl = !epiSimUrlString.StartsWith("http://") ? "http://" + epiSimUrlString : epiSimUrlString; state.SetEpisimUrl(epiSimUrl); state.InitiateEpisim(); break; } } } }
public static EpistemicState initModel() { EpistemicState state = new EpistemicState(); // creating Concept instances (actions) // available types: ACTION, OBJECT, PROPERTY // available modes: L, G Concept pointG = new Concept("point", ConceptType.ACTION, ConceptMode.G); Concept deixis_thisL = new Concept("THIS", ConceptType.ACTION, ConceptMode.L); Concept deixis_thatL = new Concept("THAT", ConceptType.ACTION, ConceptMode.L); Concept deixis_thereL = new Concept("THERE", ConceptType.ACTION, ConceptMode.L); Concept grabG = new Concept("grab", ConceptType.ACTION, ConceptMode.G); Concept grabL = new Concept("GRAB", ConceptType.ACTION, ConceptMode.L); Concept moveG = new Concept("move", ConceptType.ACTION, ConceptMode.G); //Concept moveL = new Concept ("PUT", ConceptType.ACTION, ConceptMode.L); Concept pushG = new Concept("push", ConceptType.ACTION, ConceptMode.G); //Concept pushL = new Concept ("PUSH", ConceptType.ACTION, ConceptMode.L); Concept posackG = new Concept("posack", ConceptType.ACTION, ConceptMode.G); Concept posackL = new Concept("YES", ConceptType.ACTION, ConceptMode.L); Concept negackG = new Concept("negack", ConceptType.ACTION, ConceptMode.G); Concept negackL = new Concept("NO", ConceptType.ACTION, ConceptMode.L); // todo nevermind as "undo" and nothing as "cancel" Concept neverMindL = new Concept("NEVERMIND", ConceptType.ACTION, ConceptMode.L); Concept nothingL = new Concept("NOTHING", ConceptType.ACTION, ConceptMode.L); // add concepts to the epistemic model state.AddConcept(pointG); state.AddConcept(deixis_thisL); state.AddConcept(deixis_thatL); state.AddConcept(deixis_thereL); state.AddRelation(pointG, deixis_thisL, true); state.AddRelation(pointG, deixis_thatL, true); state.AddRelation(pointG, deixis_thereL, true); state.AddConcept(grabG); state.AddConcept(grabL); state.AddRelation(grabG, grabL, true); state.AddConcept(moveG); // state.AddConcept(moveL); // state.AddRelation(moveG, moveL, true); state.AddConcept(pushG); // state.AddConcept(pushL); // state.AddRelation(pushG, pushL, true); state.AddConcept(posackG); state.AddConcept(posackL); state.AddConcept(negackG); state.AddConcept(negackL); state.AddConcept(neverMindL); state.AddConcept(nothingL); // add relations between them, third boolean param is bidirectional state.AddRelation(posackG, posackL, true); state.AddRelation(negackG, negackL, true); state.AddPropertyGroup(new PropertyGroup("COLOR", PropertyType.Nominal)); Concept red = new Concept("RED", ConceptType.PROPERTY, ConceptMode.L); Concept green = new Concept("GREEN", ConceptType.PROPERTY, ConceptMode.L); Concept yellow = new Concept("YELLOW", ConceptType.PROPERTY, ConceptMode.L); Concept orange = new Concept("ORANGE", ConceptType.PROPERTY, ConceptMode.L); Concept black = new Concept("BLACK", ConceptType.PROPERTY, ConceptMode.L); Concept purple = new Concept("PURPLE", ConceptType.PROPERTY, ConceptMode.L); Concept white = new Concept("WHITE", ConceptType.PROPERTY, ConceptMode.L); red.SubgroupName = "COLOR"; green.SubgroupName = "COLOR"; yellow.SubgroupName = "COLOR"; orange.SubgroupName = "COLOR"; black.SubgroupName = "COLOR"; purple.SubgroupName = "COLOR"; white.SubgroupName = "COLOR"; state.AddConcept(red); state.AddConcept(green); state.AddConcept(yellow); state.AddConcept(orange); state.AddConcept(black); state.AddConcept(purple); state.AddConcept(white); // state.AddPropertyGroup(new PropertyGroup("SIZE", PropertyType.Ordinal)); // Concept small = new Concept("SMALL", ConceptType.PROPERTY, ConceptMode.L); // Concept big = new Concept("BIG", ConceptType.PROPERTY, ConceptMode.L); // small.SubgroupName = "SIZE"; // big.SubgroupName = "SIZE"; // state.AddConcept(small); // state.AddConcept(big); state.AddPropertyGroup(new PropertyGroup("DIRECTION", PropertyType.Nominal)); Concept left = new Concept("LEFT", ConceptType.PROPERTY, ConceptMode.L); Concept right = new Concept("RIGHT", ConceptType.PROPERTY, ConceptMode.L); Concept back = new Concept("BACK", ConceptType.PROPERTY, ConceptMode.L); Concept forward = new Concept("FRONT", ConceptType.PROPERTY, ConceptMode.L); Concept up = new Concept("UP", ConceptType.PROPERTY, ConceptMode.L); Concept down = new Concept("DOWN", ConceptType.PROPERTY, ConceptMode.L); left.SubgroupName = "DIRECTION"; right.SubgroupName = "DIRECTION"; back.SubgroupName = "DIRECTION"; forward.SubgroupName = "DIRECTION"; up.SubgroupName = "DIRECTION"; down.SubgroupName = "DIRECTION"; state.AddConcept(left); state.AddConcept(right); state.AddConcept(back); state.AddConcept(forward); state.AddConcept(up); state.AddConcept(down); Debug.Log(state); return(state); }
// Use this for initialization void Start() { commBridge = GameObject.Find("CommunicationsBridge").GetComponent <CommunicationsBridge>(); _epiSimSocket = (EpistemicState)commBridge.FindRestClientByLabel("EpiSim"); }
public static string JsonifyEpistemicStateInitiation(EpistemicState collections) { return string.Format("{{{0}}}", string.Join(", ", collections.GetAllConcepts().Select(JsonifyConceptDefinitions) .ToArray())); }
public static string JsonifyUpdates(EpistemicState state, Concept[] concepts, Relation[] relations) { return string.Format("{{\"c\": {0}, \"r\": {1}}}", JsonifyUpdatedConcepts(state, concepts), JsonifyUpdatedRelations(state, relations)); }