예제 #1
0
    private void SendOSC()
    {
        // start OSC message objects
        OscMessage messageX = new OscMessage();
        OscMessage messageY = new OscMessage();
        OscMessage messageZ = new OscMessage();
        OscMessage messageW = new OscMessage();

        // set the osc addresses
        messageX.address = "/" + this.name + "X";
        messageY.address = "/" + this.name + "Y";
        messageZ.address = "/" + this.name + "Z";
        messageW.address = "/" + this.name + "W";

        // send the rotation values via OSC
        messageX.values.Add(this.transform.rotation.x);
        messageY.values.Add(this.transform.rotation.y);
        messageZ.values.Add(this.transform.rotation.z);
        messageW.values.Add(this.transform.rotation.w);

        osc.Send(messageX);
        osc.Send(messageY);
        osc.Send(messageZ);
        osc.Send(messageW);
    }
예제 #2
0
    // Update is called once per frame
    void Update()
    {
        particlesInRangePos = pcGenerator.particlesInRangePos;

        if (particlesInRangePos.Count == 0)
        {
            return;
        }

        message         = new OscMessage();
        message.address = "/num";
        message.values.Add(particlesInRangePos.Count);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/depth";

        for (int i = 0; i < particlesInRangePos.Count; i++)
        {
            Vector3 depthPoint = Camera.main.WorldToViewportPoint(new Vector3(particlesInRangePos[i].x, particlesInRangePos[i].y, particlesInRangePos[i].z));
            message.values.Add(depthPoint.x);
            message.values.Add(depthPoint.y);
        }

        print(particlesInRangePos.Count + "..." + 1 / Time.deltaTime);
        osc.Send(message);
    }
예제 #3
0
    // Find all the WheelColliders down in the hierarchy.
    void Start()
    {
        OscMessage message0 = new OscMessage();

        message0.address = "/toggle";
        int toggle = 1;

        message0.values.Add(toggle);
        osc.Send(message0);



        timecheck = true;
        m_Wheels  = GetComponentsInChildren <WheelCollider>();

        for (int i = 0; i < m_Wheels.Length; ++i)
        {
            var wheel = m_Wheels[i];

            // Create wheel shapes only when needed.
            if (wheelShape != null)
            {
                var ws = Instantiate(wheelShape);
                ws.transform.parent = wheel.transform;
            }
        }

        CurrentGear = 1;
    }
예제 #4
0
    // Update is called once per frame
    void Update()
    {
        OscMessage message = new OscMessage();

        message.address = handlerNamePos;
        message.values.Add(transform.position.x);
        message.values.Add(transform.position.y);
        message.values.Add(transform.position.z);
        osc.Send(message);

        message         = new OscMessage();
        message.address = handlerNameScale;
        message.values.Add(transform.localScale.x / 2);

        osc.Send(message);


//        message = new OscMessage();
//        message.address = "/HeadX";
//        message.values.Add(transform.position.x);
//        osc.Send(message);
//
//        message = new OscMessage();
//        message.address = "/HeadY";
//        message.values.Add(transform.position.y);
//        osc.Send(message);
//
//        message = new OscMessage();
//        message.address = "/HeadZ";
//        message.values.Add(transform.position.z);
//        osc.Send(message);
    }
예제 #5
0
    void OnMouseDown()
    {
        OscMessage message;

        message         = new OscMessage();
        message.address = "/OnMouseDownXYZ";
        message.values.Add(transform.position.x);
        message.values.Add(transform.position.y);
        message.values.Add(transform.position.z);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/OnMouseDownX";
        message.values.Add(transform.position.x);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/OnMouseDownY";
        message.values.Add(transform.position.y);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/OnMouseDownZ";
        message.values.Add(transform.position.z);
        osc.Send(message);
    }
        // Update is called once per frame
        void Update()
        {
            if (triggerPressed)
            {
                triggerBoolValue = 1;
            }
            else
            {
                triggerBoolValue = 0;
            }

            OscMessage message = new OscMessage();


            //messages are only sent trough OSC when the hand is gripped
            if (isGripClicked == true)
            {
                message         = new OscMessage();
                message.address = "/LeftHand";
                message.values.Add(transform.position.x);
                message.values.Add(transform.position.y);
                message.values.Add(transform.position.z);
                message.values.Add(triggerBoolValue);           ///int
                message.values.Add(attack);
                message.values.Add(transform.rotation.x);
                osc.Send(message);
            }
        }
예제 #7
0
    // Update is called once per frame
    void Update()
    {
        OscMessage message = new OscMessage();

        message.address = "/UpdateXYZ";
        message.values.Add(transform.position.x);
        message.values.Add(transform.position.y);
        message.values.Add(transform.position.z);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/UpdateX";
        message.values.Add(transform.position.x);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/UpdateY";
        message.values.Add(transform.position.y);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/UpdateZ";
        message.values.Add(transform.position.z);
        osc.Send(message);
    }
예제 #8
0
    void SendMsg(String label, List <Tuple <Vector3, Vector3> > data)
    {
        OscMessage m = new OscMessage();

        m.address = label;

        //print("data: " + data.Count);
        String dbg = "";

        foreach (Tuple <Vector3, Vector3> obj in data)
        {
            Vector3 coord = obj.Item1;
            Vector3 bbox  = obj.Item2;
            // only add x and z values, y is up
            m.values.Add((float)coord[0]);
            m.values.Add((float)coord[2]);
            dbg += coord[0] + ", " + coord[2] + ", ";
            m.values.Add((float)bbox[0]);
            m.values.Add((float)bbox[2]);
            dbg += bbox[0] + ", " + bbox[2] + "; ";
        }
        //print (dbg);
        osc.Send(m);
        m = null;
    }
    public void  EnviarPrenderAntenaDesdeUnity(int numAntena)
    {
        OscMessage message = new OscMessage();

        message.address = "";
        if (numAntena == 1)
        {
            message.address = "/Antena1/Prender/";
        }
        else if (numAntena == 2)
        {
            message.address = "/Antena2/Prender/";
        }
        else if (numAntena == 3)
        {
            message.address = "/Antena3/Prender/";
        }
        else if (numAntena == 4)
        {
            message.address = "/Antena4/Prender/";
        }

        message.values.Add(1);
        osc.Send(message);
    }
예제 #10
0
    // Update is called once per frame

    public void SendInformation(int ReadyStatus)
    {
        OscMessage message = new OscMessage();

        message.address = "/Ready";
        message.values.Add(ReadyStatus);
        osc.Send(message);
    }
예제 #11
0
    // OSC Messages-----
    // OSC Coll Resi
    private void OSCCollisionResi()
    {
        OscMessage msg = new OscMessage();

        msg.address = "/resiColl";
        msg.values.Add(freq);
        myOsc.Send(msg);
        Debug.Log("Send OSC message /resiColl new freq: " + freq);
    }
예제 #12
0
    void InformServerOnRegistration(string json)
    {
        OscMessage message;

        message         = new OscMessage();
        message.address = "/register";
        message.values.Add(json);
        osc.Send(message);
    }
예제 #13
0
    //OSC Message
    private void OSCDig()
    {
        OscMessage msg = new OscMessage();

        msg.address = "/resource_dig";
        //msg.values.Add (transform.position.x);
        myOsc.Send(msg);
        Debug.Log("Send OSC message /resource_dig");
    }
예제 #14
0
    public void SendLED()
    {
        OscMessage message = new OscMessage();

        message.address = "/toboard_toggle";
        led_on          = (led_on == 0f) ? 1f : 0f;
        message.values.Add(led_on);
        osc.Send(message);
    }
예제 #15
0
    //OSC Messages

    //Player Walk
    private void OSCPlayerWalk()
    {
        OscMessage msg = new OscMessage();

        msg.address = "/player_move";
        //msg.values.Add (transform.position.x);
        myOsc.Send(msg);
        Debug.Log("Send OSC message /player_walk");
    }
예제 #16
0
    void enviarMensaje(string addrs, int indice)
    {
        OscMessage mensaje = new OscMessage();

        mensaje.address = addrs;
        mensaje.values.Add(indice);
        Debug.Log(addrs + "|" + indice);
        osc.Send(mensaje);
    }
예제 #17
0
    // sends osc message to enable automation
    void EnableAuto()
    {
        AutoEnabled = true;
        OscMessage message = new OscMessage();

        message.address = "/EnableAuto";
        message.values.Add(127);
        osc.Send(message);
    }
예제 #18
0
    // Update is called once per frame
    void Update()
    {
        OscMessage message = new OscMessage();

        message.address = "/test";
        message.values.Add(Input.mousePosition.x);
        message.values.Add(Input.mousePosition.y);
        message.values.Add(transform.position.z);
        oscReference.Send(message);
    }
    void enviarMensajeRotacion()
    {
        OscMessage mensaje = new OscMessage();

        mensaje.address = "/setRot";
        mensaje.values.Add(rotador.getX());
        mensaje.values.Add(rotador.getY());
        mensaje.values.Add(rotador.getZ());
        osc.Send(mensaje);
    }
    // Start is called before the first frame update
    // void Start()
    // {
    //
    // }

    // Update is called once per frame
    // void Update()
    // {
    // }

    void OnCollisionEnter(Collision col)
    {
        OscMessage msg = new OscMessage();

        msg.address = osc_adr;
        msg.values.Add((float)1);
        osc.Send(msg);
        msg = null;
        Debug.Log("A collision: " + osc_adr + "; " + col.gameObject.name);
    }
    void PlayButton()
    {
        OscMessage message;

        Debug.Log("Play Button Clicked");

        message         = new OscMessage();
        message.address = "/Play";
        message.values.Add(transform.rotation.x);
        osc.Send(message);
    }
예제 #22
0
    private void SendThread()
    {
        while (!_stop)
        {
            if (!SenselMaster.IsAvailable)
            {
                return;
            }

            int cols = SenselMaster.SensorInfo.num_cols;
            int rows = SenselMaster.SensorInfo.num_rows;

            if (_left == null || _left.Length != rows)
            {
                _left  = new float[rows];
                _right = new float[rows];
            }
            for (int i = 0; i < rows; i++)
            {
                _left[i]  = 0f;
                _right[i] = 0f;
            }
            int index = 0;
            var force = SenselMaster.ForceArray;
            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < cols; j++)
                {
                    float data = force[index];
                    data = Mathf.Pow(data * _sensitivity, _power);
                    float pan = Mathf.InverseLerp(0, cols - 1, j);
                    _left[rows - i - 1]  += data * (1 - pan);
                    _right[rows - i - 1] += data * pan;

                    index++;
                }
            }

            _message.address         = _oscAddress + "/left";
            _message.values.Capacity = rows;
            _message.values.Clear();
            _message.values.AddRange(_left);
            _osc.Send(_message);
            // _client.Send(_oscAddress, _data);

            _message.address = _oscAddress + "/right";
            _message.values.Clear();
            _message.values.AddRange(_right);
            _osc.Send(_message);

            Thread.Sleep((int)(_sendInterval * 1000));
        }
    }
예제 #23
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.S))
        {
            _start = !_start;
            print("Start: " + _start);
        }

        if (Input.GetKeyDown(KeyCode.C))
        {
            _calibrate = !_calibrate;
            print("Calibrate: " + _calibrate);
        }

        if (_calibrate)
        {
            _minMaxFlow.CalculateMaxMinFloat(_flowDescriptor.FlowDescriptorVal);
            _minMaxBodyVol.CalculateMaxMinFloat(_bodyBounds.BoundingBox.size.magnitude);
            _minMaxHandVol.CalculateMaxMinFloat(_handBounds.BoundingBox.size.magnitude);
        }

        if (!_start)
        {
            return;
        }

        //print(HandBounds.BoundingBox.size.magnitude / max);

        OscMessage message = new OscMessage();

        //NewValue = (((OldValue - OldMin) * (NewMax - NewMin)) / (OldMax - OldMin)) + NewMin

        message.address = "/Flow";
        message.values.Add(Mathf.Clamp01((_flowDescriptor.FlowDescriptorVal - _minMaxFlow.MinFloat) / (_minMaxFlow.MaxFloat - _minMaxFlow.MinFloat)));

        _osc.Send(message);

        message         = new OscMessage();
        message.address = "/BodyVol";
        message.values.Add(Mathf.Clamp01((_bodyBounds.BoundingBox.size.magnitude - _minMaxBodyVol.MinFloat) / (_minMaxBodyVol.MaxFloat - _minMaxBodyVol.MinFloat)));

        _osc.Send(message);

        message         = new OscMessage();
        message.address = "/HandVol";
        message.values.Add(Mathf.Clamp01((_handBounds.BoundingBox.size.magnitude - _minMaxHandVol.MinFloat) / (_minMaxHandVol.MaxFloat - _minMaxHandVol.MinFloat)));

        _osc.Send(message);


        OnFlowChange();
        OnBodyVolumeChange();
    }
예제 #24
0
        private IEnumerator SwitchToFixation(float time)
        {
            var message = new OscMessage();                                         //L

            message.address = Question.Stimuli[_randomisationOrder[_currentIndex]]; //L
            message.values.Add(0);                                                  //L


            _fixation = true;
            UpdateVisibility();
            _osc.Send(message);              //L

            if (Question.Configuration.SeparatorFirst && !_firstStimulus)
            {
                _firstStimulus = true;
            }
            else
            {
                _secondStimulus = true;
                _firstStimulus  = false;

                _currentIndex++;

                if (Question.Configuration.Type == Type.Image)
                {
                    _rawImage.texture = _imgLocs[_randomisationOrder[_currentIndex]].texture;
                }
                else
                {
                    _videoPlayer.clip = _vidLocs[_randomisationOrder[_currentIndex]];
                }
            }

            var index = Question.Configuration.SeparatorFirst ? _currentIndex : _currentDecision;

            _log.InsertLiveMeasurement("Fixation"
                                       , "Event"
                                       , null
                                       , "Start " + index);

            Debug.Log("Remain in Fixation for " + time + " sec");
            _log.InsertLiveMeasurement("LabChart", "Event", null, "Fixation: " + index);
            yield return(new WaitForSeconds(time));

            _fixation = false;
            if (previousCoroutine != null)
            {
                StopCoroutine(previousCoroutine);
            }
            previousCoroutine = StartCoroutine(SwitchToNext(Question.Times.Exposition));
        }
예제 #25
0
    public void Send(string transcript)
    {
        OscMessage message;



        message         = new OscMessage();
        message.address = "/query";
        message.values.Add("{\"prompt\":\"" + transcript + "\"}");
        osc.Send(message);
        receiver.transcript = transcript;

        Debug.Log("sent");
    }
예제 #26
0
    // Update is called once per frame
    void FixedUpdate()
    {
        ExperimentRunner exp = GetComponent <ExperimentRunner>();

        if (exp.IsStarted())
        {
            ball_controller = GetComponent <BallController>();

            OscMessage message = new OscMessage();

            message.address = "/morphoses/data";
            // Experiment.
            message.values.Add(exp.GetId());
            // Time.
            message.values.Add((float)exp.GetTime());
            // Position.
            message.values.Add(transform.position.x);
            message.values.Add(transform.position.z);
            // Quaternions.
            message.values.Add(transform.rotation.x);
            message.values.Add(transform.rotation.y);
            message.values.Add(transform.rotation.z);
            message.values.Add(transform.rotation.w);
            // inputs
            message.values.Add(ball_controller.speed);
            message.values.Add(ball_controller.steering);
            //osc.Send(message);

            if (recieving_osc)
            {
                ReceiveOSC reciever = GetComponent <ReceiveOSC>();
                if (reciever.canSendPacket())
                {
                    Debug.Log(message);
                    osc.Send(message);
                    reciever.sentPacket();
                    Debug.Log("send packet");
                }
                else
                {
                    Debug.Log("cannot send packet!");
                }
            }
            else
            {
                osc.Send(message);
            }
        }
    }
예제 #27
0
    public void FollowTarget(Vector3 targetPos, float moveTime)
    {
        LeanTween.move(PupilObject, calcTargetPos(targetPos), moveTime);

        if (IsSender)
        {
            OscMessage message = new OscMessage();
            message.address = FollowAddress;
            message.values.Add(targetPos.x);
            message.values.Add(targetPos.y);
            message.values.Add(targetPos.z);
            message.values.Add(moveTime);
            osc.Send(message);
        }
    }
예제 #28
0
    // Update is called once per frame
    void Update()
    {
        OscMessage message = new OscMessage();

        message.address = "/UpdateXYZBall2";
        message.values.Add(transform.position.x);
        message.values.Add(transform.position.y);
        message.values.Add(transform.position.z);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/UpdateBall2Vol";
        message.values.Add(transform.localScale.x);
        osc.Send(message);
    }
예제 #29
0
 IEnumerator Ping()
 {
     while (true)
     {
         if (bPing)
         {
             OscMessage message = new OscMessage();
             message.address = "/ping/";
             message.values.Add(1);
             osc.Send(message);
             Debug.Log("Ping Sent");
         }
         yield return(new WaitForSeconds(1.0f));
     }
 }
    // Update is called once per frame
    void Update()
    {
        stick = j.GetStick();

        // Gyro values: x, y, z axis values (in radians per second)
        gyro = j.GetGyro();

        // Accel values:  x, y, z axis values (in Gs)
        accel = j.GetAccel();

        orientation = j.GetVector();

        OscMessage message = new OscMessage();

        message.address = "/UpdateXYZ";
        message.values.Add(transform.position.x);
        message.values.Add(transform.position.y);
        message.values.Add(transform.position.z);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/UpdateGyro";
        message.values.Add(gyro[0]);
        message.values.Add(gyro[1]);
        message.values.Add(gyro[2]);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/UpdateAccel";
        message.values.Add(accel[0]);
        message.values.Add(accel[1]);
        message.values.Add(accel[2]);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/UpdateOri";
        message.values.Add(orientation[0]);
        message.values.Add(orientation[1]);
        message.values.Add(orientation[2]);
        message.values.Add(orientation[3]);
        osc.Send(message);

        message         = new OscMessage();
        message.address = "/UpdateStick";
        message.values.Add(stick[0]);
        message.values.Add(stick[1]);
        osc.Send(message);
    }