public void sendGamaMessage(Vector3 position)
    {
        string message = "";

        switch (actionToDo)
        {
        case 1:
            message = MsgSerialization.serialization(new LittosimMessage("Unity", "GamaMainAgent", 1, position.x, position.y, DateTime.Now.ToString()));
            publishMessage(message);
            break;

        case 2:
            message = MsgSerialization.serialization(new LittosimMessage("Unity", "GamaMainAgent", 2, position.x, position.y, DateTime.Now.ToString()));
            publishMessage(message);
            break;

        case 3:
            message = MsgSerialization.serialization(new LittosimMessage("Unity", "GamaMainAgent", 3, position.x, position.y, DateTime.Now.ToString()));
            publishMessage(message);
            break;

        case 4:
            message = MsgSerialization.serialization(new LittosimMessage("Unity", "GamaMainAgent", 4, position.x, position.y, DateTime.Now.ToString()));
            publishMessage(message);
            break;

        case 5:
            message = MsgSerialization.serialization(new LittosimMessage("Unity", "GamaMainAgent", 5, position.x, position.y, DateTime.Now.ToString()));
            publishMessage(message);
            break;
        }
        actionToDo = 0;
        gameNbr++;
    }
예제 #2
0
        // à revoir en utilisant publishMessage
        public void sendReplay(string sender, string receiver, string fieldName, string fieldValue)
        {
            ReplayMessage msg     = new ReplayMessage(sender, receiver, "content not set", fieldName, fieldValue, DateTime.Now.ToString());
            string        message = MsgSerialization.serialization(msg);

            publishMessage(message, MqttSetting.REPLAY_TOPIC);
        }
        void OnGUI()
        {
            Rect bounds = new Rect(58, -843, 1320, 200);

            GUI.Label(bounds, "test");
            Texture2D texture = new Texture2D(1, 1);

            texture.SetPixel(0, 0, Color.red);
            texture.Apply();
            GUI.skin.box.normal.background = texture;
            GUI.Box(bounds, GUIContent.none);

            // --------
            if (GUI.Button(new Rect(150, 1, 150, 20), "Send Mqtt message!"))
            {
                string message = MsgSerialization.serialization(new LittosimMessage(ILittoSimConcept.GAMA_TOPIC, ILittoSimConcept.GAMA_AGENT, 1, 0, 0, DateTime.Now.ToString()));
                message = "ceci est un test de message MQTT de unity vers Gama";
                string topic = "li";
                //int msgId = GamaManager.client.Publish(topic, System.Text.Encoding.UTF8.GetBytes(message), MqttMsgBase.QOS_LEVEL_EXACTLY_ONCE, true);
                int msgId = GamaManager.client.Publish(topic, System.Text.Encoding.UTF8.GetBytes(message));
                Debug.Log("msgId is: " + msgId + " -> " + message);
                Debug.Log("Message sent to topic: " + topic);
            }
        }
        public void sendDeleteAction(string name)
        {
            string message = MsgSerialization.serialization(new LittosimMessage(ILittoSimConcept.GAMA_TOPIC, "GamaMainAgent", 101, name, 0, 0, DateTime.Now.ToString()));

            publishMessage(message);
        }
        public void validateActionList()
        {
            string message = MsgSerialization.serialization(new LittosimMessage(ILittoSimConcept.GAMA_TOPIC, "GamaMainAgent", 100, 0, 0, DateTime.Now.ToString()));

            publishMessage(message);
        }
 public string getSerializedMessage(int idAction, Vector3 position)
 {
     return(MsgSerialization.serialization(new LittosimMessage(ILittoSimConcept.GAMA_TOPIC, ILittoSimConcept.GAMA_AGENT, idAction, position.x, position.y, DateTime.Now.ToString())));
 }
    public void sendDeleteAction(string name)
    {
        string message = MsgSerialization.serialization(new LittosimMessage("Unity", "GamaMainAgent", 101, name, 0, 0, DateTime.Now.ToString()));

        publishMessage(message);
    }
    public void validateActionList()
    {
        string message = MsgSerialization.serialization(new LittosimMessage("Unity", "GamaMainAgent", 100, 0, 0, DateTime.Now.ToString()));

        publishMessage(message);
    }
예제 #9
0
    void FixedUpdate()
    {
        if (msgList.Count > 0)
        {
            MqttMsgPublishEventArgs e = msgList[0];
            if (!MqttSetting.getTopicsInList().Contains(e.Topic))
            {
                Debug.Log("-> The Topic '" + e.Topic + "' doesn't exist in the defined list. Please check! (the message will be deleted!)");
                msgList.Remove(e);
                return;
            }

            receivedMsg = System.Text.Encoding.UTF8.GetString(e.Message);
            //Debug.Log ("-> Received Message is : " + receivedMsg);
            allObjects = UnityEngine.Object.FindObjectsOfType <GameObject>();

            switch (e.Topic)
            {
            case MqttSetting.MAIN_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.MAIN_TOPIC);
                //Debug.Log("-> The message is : " + e.Message);

                topicGameObject = gameObject;
                GamaMessage gamaMessage = (GamaMessage)MsgSerialization.deserialization(receivedMsg, new GamaMessage());
                targetGameObject = GameObject.Find(gamaMessage.receivers);

                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + gamaMessage.receivers + "). Please check you code! ");
                    break;
                }

                obj = new object[] { gamaMessage, targetGameObject };
                //GamaManager obje = (GamaManager) FindObjectOfType(typeof(GamaManager));
                GameObject.Find(MqttSetting.MAIN_TOPIC_MANAGER).GetComponent(MqttSetting.MAIN_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);

                //------------------------------------------------------------------------------
                break;

            case MqttSetting.MONO_FREE_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.MONO_FREE_TOPIC);
                MonoFreeTopicMessage monoFreeTopicMessage = (MonoFreeTopicMessage)MsgSerialization.deserialization(receivedMsg, new MonoFreeTopicMessage());
                targetGameObject = GameObject.Find(monoFreeTopicMessage.objectName);
                obj = new object[] { monoFreeTopicMessage, targetGameObject };

                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + monoFreeTopicMessage.objectName + "). Please check your code! ");
                    break;
                }
                Debug.Log("The message is to " + monoFreeTopicMessage.objectName + " about the methode " + monoFreeTopicMessage.methodName + " and attribute " + monoFreeTopicMessage.attribute);
                GameObject.Find(MqttSetting.MONO_FREE_TOPIC_MANAGER).GetComponent(MqttSetting.MONO_FREE_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                //------------------------------------------------------------------------------
                break;

            case MqttSetting.MULTIPLE_FREE_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.MULTIPLE_FREE_TOPIC);

                MultipleFreeTopicMessage multipleFreetopicMessage = (MultipleFreeTopicMessage)MsgSerialization.deserialization(receivedMsg, new MultipleFreeTopicMessage());
                targetGameObject = GameObject.Find(multipleFreetopicMessage.objectName);
                obj = new object[] { multipleFreetopicMessage, targetGameObject };

                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + multipleFreetopicMessage.objectName + "). Please check you code! ");
                    break;
                }

                GameObject.Find(MqttSetting.MULTIPLE_FREE_TOPIC_MANAGER).GetComponent(MqttSetting.MULTIPLE_FREE_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                //------------------------------------------------------------------------------
                break;

            case MqttSetting.POSITION_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.POSITION_TOPIC);



                PositionTopicMessage positionTopicMessage = (PositionTopicMessage)MsgSerialization.deserialization(receivedMsg, new PositionTopicMessage());
                targetGameObject = GameObject.Find(positionTopicMessage.objectName);
                obj = new object[] { positionTopicMessage, targetGameObject };

                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + positionTopicMessage.objectName + "). Please check you code! ");
                    break;
                }
                else
                {
                    GameObject.Find(MqttSetting.POSITION_TOPIC_MANAGER).GetComponent(MqttSetting.POSITION_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                }

                //------------------------------------------------------------------------------
                break;

            case MqttSetting.MOVE_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.MOVE_TOPIC);


                MoveTopicMessage moveTopicMessage = (MoveTopicMessage)MsgSerialization.deserialization(receivedMsg, new MoveTopicMessage());

                print("the coordinates are: ");

                print(" x =  " + moveTopicMessage.position.x);
                print(" y = " + moveTopicMessage.position.y);
                print(" z " + moveTopicMessage.position.z);

                targetGameObject = GameObject.Find(moveTopicMessage.objectName);
                obj = new object[] { moveTopicMessage, targetGameObject };

                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + moveTopicMessage.objectName + "). Please check you code! ");
                    break;
                }

                GameObject.Find(MqttSetting.MOVE_TOPIC_MANAGER).GetComponent(MqttSetting.MOVE_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                //------------------------------------------------------------------------------
                break;

            case MqttSetting.COLOR_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.COLOR_TOPIC);

                ColorTopicMessage colorTopicMessage = (ColorTopicMessage)MsgSerialization.deserialization(receivedMsg, new ColorTopicMessage());
                targetGameObject = GameObject.Find(colorTopicMessage.objectName);
                obj = new object[] { colorTopicMessage, targetGameObject };

                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + colorTopicMessage.objectName + "). Please check you code! ");
                    break;
                }

                GameObject.Find(MqttSetting.COLOR_TOPIC_MANAGER).GetComponent(MqttSetting.COLOR_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);

                //------------------------------------------------------------------------------
                break;

            case MqttSetting.GET_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.GET_TOPIC);
                string value = null;

                GetTopicMessage getTopicMessage = (GetTopicMessage)MsgSerialization.deserialization(receivedMsg, new GetTopicMessage());
                targetGameObject = GameObject.Find(getTopicMessage.objectName);


                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + getTopicMessage.objectName + "). Please check you code! ");
                    break;
                }

                obj = new object[] { getTopicMessage, targetGameObject, value };

                GameObject.Find(MqttSetting.GET_TOPIC_MANAGER).GetComponent(MqttSetting.GET_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                sendReplay(clientId, "GamaAgent", getTopicMessage.attribute, (string)obj[2]);
                //------------------------------------------------------------------------------
                break;

            case MqttSetting.SET_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.SET_TOPIC);

                SetTopicMessage setTopicMessage = (SetTopicMessage)MsgSerialization.deserialization(receivedMsg, new SetTopicMessage());
                // Debug.Log("-> Target game object name: " + setTopicMessage.objectName);
                // Debug.Log("-> Message: " + receivedMsg);
                targetGameObject = GameObject.Find(setTopicMessage.objectName);

                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + setTopicMessage.objectName + "). Please check you code! ");
                    break;
                }

                obj = new object[] { setTopicMessage, targetGameObject };

                GameObject.Find(MqttSetting.SET_TOPIC_MANAGER).GetComponent(MqttSetting.SET_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                //------------------------------------------------------------------------------
                break;

            case MqttSetting.PROPERTY_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.PROPERTY_TOPIC);
                //XStream xstream = new XStream();
                // -------------------------------
                PropertyTopicMessage pm = new PropertyTopicMessage();
                pm.emissionTimeStamp = "8";
                pm.contents          = "Content not set";
                pm.objectName        = "Player";
                pm.receivers         = "Player";
                pm.sender            = "GamaAgent0";
                pm.unread            = "true";
                pm.property          = "localScale";
                pm.valueType         = "GamaPoint";
                pm.value             = new GamaPoint();


                Debug.Log("---- - >  Serialization ");
                string pmMessage = MsgSerialization.serialization(pm);

                Debug.Log("---- - >  pmMessage is \n " + pmMessage);

                PropertyTopicMessage pm2 = (PropertyTopicMessage)MsgSerialization.deserialization(pmMessage, new PropertyTopicMessage());

                Debug.Log("---- - >  Deserialization ");

                print("-- > property: " + pm2.property);
                print("-- > value: " + pm2.value);

                GamaPoint pp = (GamaPoint)pm2.value;

                print("-- > value x: " + pp.x);
                print("-- > value y: " + pp.y);
                print("-- > value z: " + pp.z);
                // ----------------------------

                PropertyTopicMessage propertyTopicMessage;


                Debug.Log("---- - >  Target and message is \n " + receivedMsg);
                // propertyTopicMessage = (PropertyTopicMessage) xstream.FromXml(receivedMsg);
                propertyTopicMessage = (PropertyTopicMessage)MsgSerialization.deserialization(receivedMsg, new PropertyTopicMessage());

                Debug.Log("---77777 - >  Deserealized  \n ");
                // Debug.Log("-> Target game object Value: " + propertyTopicMessage.value);


                GamaPoint gp = (GamaPoint)propertyTopicMessage.value;

                // PropertyTopicMessage propertyTopicMessage = (PropertyTopicMessage)MsgSerialization.deserialization(receivedMsg, new PropertyTopicMessage());
                Debug.Log("-> Target game object name: " + propertyTopicMessage.objectName);
                Debug.Log("-> Target game object Value: " + gp.getVector3());
                targetGameObject = GameObject.Find(propertyTopicMessage.objectName);

                if (targetGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + propertyTopicMessage.objectName + "). Please check you code! ");
                    break;
                }

                obj = new object[] { propertyTopicMessage, targetGameObject };

                GameObject.Find(MqttSetting.PROPERTY_TOPIC_MANAGER).GetComponent(MqttSetting.PROPERTY_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                //------------------------------------------------------------------------------
                break;

            case MqttSetting.CREATE_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.CREATE_TOPIC);
                // Debug.Log("-> Message: " + receivedMsg);
                CreateTopicMessage createTopicMessage = (CreateTopicMessage)MsgSerialization.deserialization(receivedMsg, new CreateTopicMessage());
                obj = new object[] { createTopicMessage };

                GameObject.Find(MqttSetting.CREATE_TOPIC_MANAGER).GetComponent(MqttSetting.CREATE_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                //------------------------------------------------------------------------------
                break;

            case MqttSetting.DESTROY_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.DESTROY_TOPIC);

                DestroyTopicMessage destroyTopicMessage = (DestroyTopicMessage)MsgSerialization.deserialization(receivedMsg, new DestroyTopicMessage());
                obj = new object[] { destroyTopicMessage };

                if (topicGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + destroyTopicMessage.objectName + "). Please check you code! ");
                    break;
                }

                GameObject.Find(MqttSetting.DESTROY_TOPIC_MANAGER).GetComponent(MqttSetting.DESTROY_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);
                //------------------------------------------------------------------------------
                break;

            case MqttSetting.NOTIFICATION_TOPIC:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.NOTIFICATION_TOPIC);

                NotificationTopicMessage notificationTopicMessage = (NotificationTopicMessage)MsgSerialization.deserialization(receivedMsg, new NotificationTopicMessage());
                obj = new object[] { notificationTopicMessage };


                if (topicGameObject == null)
                {
                    Debug.LogError(" Sorry, requested gameObject is null (" + notificationTopicMessage.objectName + "). Please check you code! ");
                    break;
                }

                GameObject.Find(MqttSetting.NOTIFICATION_TOPIC_MANAGER).GetComponent(MqttSetting.NOTIFICATION_TOPIC_SCRIPT).SendMessage("ProcessTopic", obj);

                //------------------------------------------------------------------------------
                break;

            default:
                //------------------------------------------------------------------------------
                Debug.Log("-> Topic to deal with is : " + MqttSetting.DEFAULT_TOPIC);
                //------------------------------------------------------------------------------
                break;
            }

            msgList.Remove(e);
        }

        checkForNotifications();
        GameObject mapBuilder = GameObject.Find("MapBuilder");

        //GameObject mapBuilder = GameObject.Find("MapBuilder");
        //regionMap = (RegionMap) FindObjectOfType(typeof(RegionMap));
        //GameObject mapBuilder  = (GameObject) FindObjectOfType(typeof(MapBuilder));

        if (mapBuilder != null)
        {
            mapBuilder.GetComponent <RegionMap>().SendMessage("DrawNewAgents");
        }
        else
        {
            //       Debug.Log("No such Object. Sorry");
        }
    }