Beispiel #1
0
    void SendInfoMessagesV1(string infoIP, int infoPort)
    {
        OSCMessage infoMessage = new OSCMessage("/info");

        infoMessage.Append(NetworkManager.GetIpv4());
        infoMessage.Append("Augmenta Simulator");
        infoMessage.Append(NetworkManager.GetMacAddress());
        infoMessage.Append(Application.version);
        infoMessage.Append(_controllable.currentPreset != "" ? _controllable.currentPreset : "None");
        infoMessage.Append("Simulator");
        infoMessage.Append("Simulated");

        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);
    }
Beispiel #2
0
    void sendPositions()
    {
        if (sendTargetPosition)
        {
            OSCMessage m = new OSCMessage("/motor/targetPosition");
            m.Append(target.transform.localPosition.x);
            m.Append(target.transform.localPosition.y);
            OSCMaster.SendMessage(m, "127.0.0.1", 14000);
        }

        if (sendMotorDistances)
        {
            for (int i = 0; i < motors.Length; i++)
            {
                OSCMessage m = new OSCMessage("/motor/" + (i + 1) + "/distance");
                m.Append(motors[i].position);
                OSCMaster.SendMessage(m, "127.0.0.1", 14000);
            }
        }
    }
Beispiel #3
0
    void SendInfoMessagesV2(string infoIP, int infoPort)
    {
        //Fusion
        OSCMessage infoMessage = new OSCMessage("/info/name");

        if (_nodeManager)
        {
            infoMessage.Append(_nodeManager.nodeName);
        }
        else
        {
            infoMessage.Append("Augmenta Simulator");
        }
        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

        infoMessage = new OSCMessage("/info/type");
        if (_nodeManager)
        {
            infoMessage.Append("Node");
        }
        else
        {
            infoMessage.Append("Simulator");
        }
        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

        infoMessage = new OSCMessage("/info/mac");
        infoMessage.Append(NetworkManager.GetMacAddress());
        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

        infoMessage = new OSCMessage("/info/ip");
        infoMessage.Append(NetworkManager.GetIpv4());
        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

        infoMessage = new OSCMessage("/info/version");
        infoMessage.Append(Application.version);
        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

        infoMessage = new OSCMessage("/info/currentFile");
        infoMessage.Append(_controllable.currentPreset != "" ? _controllable.currentPreset : "None");
        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

        infoMessage = new OSCMessage("/info/protocolAvailable");
        infoMessage.Append("OSC");
        infoMessage.Append("1");
        infoMessage.Append("2");
        OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

        if (_nodeManager)
        {
            //Node
            infoMessage = new OSCMessage("/info/sensor/type");
            infoMessage.Append(_nodeManager.sensorType);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/sensor/brand");
            infoMessage.Append(_nodeManager.sensorBrand);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/sensor/name");
            infoMessage.Append(_nodeManager.sensorName);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/sensor/hFov");
            infoMessage.Append(_nodeManager.sensorHFOV);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/sensor/vFov");
            infoMessage.Append(_nodeManager.sensorVFOV);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/floorMode");
            infoMessage.Append(_nodeManager.floorMode);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/floorState");
            infoMessage.Append(_nodeManager.floorState);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/backgroundMode");
            infoMessage.Append(_nodeManager.backgroundMode);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/debug/pipeName");
            infoMessage.Append(_nodeManager.debugPipeName);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/debug/sensor");
            infoMessage.Append(_nodeManager.debugSensor);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/debug/videoPipe");
            infoMessage.Append(_nodeManager.debugVideoPipe);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/debug/trackingPipe");
            infoMessage.Append(_nodeManager.debugTrackingPipe);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/debug/pid");
            infoMessage.Append(_nodeManager.debugPID);
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);

            infoMessage = new OSCMessage("/info/tags");
            foreach (string tag in _nodeManager.tagsList)
            {
                infoMessage.Append(tag);
            }
            OSCMaster.SendMessage(infoMessage, infoIP, infoPort);
        }
    }
Beispiel #4
0
    /// <summary>
    /// Answer yo protocol
    /// </summary>
    void OnYoMessageReceived(OSCMessage message)
    {
        string[] addressSplit = message.Address.Split('/');

        switch (addressSplit[1])
        {
        case "yo":

            //Answer yo
            string yoIP   = message.Data[0].ToString();
            int    yoPort = (int)message.Data[1];

            OSCMessage wassupMessage = new OSCMessage("/wassup");

            wassupMessage.Append(NetworkManager.GetIpv4());
            wassupMessage.Append(NetworkManager.GetMacAddress());
            wassupMessage.Append(_nodeManager ? _nodeManager.nodeName : "Simulator");
            wassupMessage.Append(_nodeManager ? string.Join(",", _nodeManager.tagsList) : "");

            if (debug)
            {
                Debug.Log("Answering yo from " + yoIP + ":" + yoPort + " with " + NetworkManager.GetIpv4() + " and " + NetworkManager.GetMacAddress());
            }

            try
            {
                OSCMaster.SendMessage(wassupMessage, yoIP, yoPort);
            }catch (System.Exception e)
            {
                Debug.LogWarning("Error sending OSC to " + yoIP + ":" + yoPort + " (" + e.Message + ")");
            }

            break;

        case "connect":

            switch (yoVersion)
            {
            case 1:
                HandleConnectV1(message);
                break;

            case 2:
                HandleConnectV2(message);
                break;
            }

            break;

        case "disconnect":

            switch (yoVersion)
            {
            case 1:
                HandleDisconnectV1(message);
                break;

            case 2:
                HandleDisconnectV2(message);
                break;
            }

            break;

        case "ping":

            //Answer ping
            string pongIP   = message.Data[0].ToString();
            int    pongPort = (int)message.Data[1];

            OSCMessage pongMessage = new OSCMessage("/pong");

            if (debug)
            {
                Debug.Log("Answering ping from " + pongIP + ":" + pongPort);
            }

            OSCMaster.SendMessage(pongMessage, pongIP, pongPort);

            break;

        case "info":

            //Answer info
            string infoIP   = message.Data[0].ToString();
            int    infoPort = (int)message.Data[1];

            if (debug)
            {
                Debug.Log("Answering info from " + infoIP + ":" + infoPort + " with " + NetworkManager.GetIpv4() + " Augmenta Simulator " + NetworkManager.GetMacAddress() + " " + Application.version + " " + _controllable.currentPreset + " Simulator Simulated");
            }
            ;

            SendInfoMessages(infoIP, infoPort);
            break;

        case "heartbeat":

            switch (yoVersion)
            {
            case 1:
                HandleHeartbeatV1(message);
                break;

            case 2:
                HandleHeartbeatV2(message);
                break;
            }

            break;
        }
    }