Exemple #1
0
        protected void InGameControls()
        {
            GUI.color = _receiver.IsStarted ? Color.green : Color.red;
            if (GUILayout.Button(_receiver.IsStarted ? "Connected" : "Disconnected"))
            {
                if (_receiver.IsStarted)
                {
                    _receiver.Close();
                }
                else
                {
                    _receiver.Connect();
                }
            }

            GUI.color   = Color.yellow;
            GUI.enabled = _receiver.IsStarted;
            if (GUILayout.Button("Reconnect"))
            {
                if (_receiver.IsStarted)
                {
                    _receiver.Close();
                }

                _receiver.Connect();
            }

            GUI.enabled = true;
        }
        protected void DrawControllsInGame()
        {
            EditorGUILayout.BeginHorizontal("box");

            GUI.color = _receiver.IsAvaible ? Color.green : Color.red;
            var connection = GUILayout.Button(_receiver.IsAvaible ? "Connected" : "Disconnected");

            GUI.color = Color.yellow;
            EditorGUI.BeginDisabledGroup(!_receiver.IsAvaible);
            var reconect = GUILayout.Button("Reconnect");

            EditorGUI.EndDisabledGroup();

            EditorGUILayout.EndHorizontal();

            if (connection)
            {
                if (_receiver.IsAvaible)
                {
                    _receiver.Close();
                }
                else
                {
                    _receiver.Connect();
                }
            }

            if (reconect)
            {
                if (_receiver.IsAvaible)
                {
                    _receiver.Close();
                }

                _receiver.Connect();
            }
        }
        protected void OnEnable()
        {
            _receiver  = target as OSCReceiver;
            _localHost = OSCUtilities.GetLocalHost();

            _localPortProperty    = serializedObject.FindProperty("localPort");
            _autoConnectProperty  = serializedObject.FindProperty("autoConnect");
            _workInEditorProperty = serializedObject.FindProperty("workInEditor");
            _mapBundleProperty    = serializedObject.FindProperty("mapBundle");

            EditorApplication.update += ReceiverEditorUpdate;

            if (!Application.isPlaying && !_receiver.IsAvaible && _workInEditorProperty.boolValue)
            {
                _receiver.Connect();
            }
        }
Exemple #4
0
        protected void OnEnable()
        {
            _receiver       = target as OSCReceiver;
            _localHostCache = OSCUtilities.GetLocalHost();

            _localHostModeProperty = serializedObject.FindProperty("_localHostMode");
            _localHostProperty     = serializedObject.FindProperty("_localHost");
            _localPortProperty     = serializedObject.FindProperty("_localPort");
            _autoConnectProperty   = serializedObject.FindProperty("_autoConnect");
            _workInEditorProperty  = serializedObject.FindProperty("_workInEditor");
            _mapBundleProperty     = serializedObject.FindProperty("_mapBundle");
            _closeOnPauseProperty  = serializedObject.FindProperty("_closeOnPause");

            EditorApplication.update += ReceiverEditorUpdate;

            if (!Application.isPlaying && !_receiver.IsStarted && _workInEditorProperty.boolValue)
            {
                _receiver.Connect();
            }
        }
Exemple #5
0
        void Open()
        {
            Close();
            try
            {
                FServer = new OSCReceiver(FPinInPort[0]);
                FServer.Connect();

                FRunning = true;
                FThread  = new Thread(ThreadedFunction);
                FThread.Start();

                FPinOutStatus[0] = "OK";
            }
            catch (Exception e)
            {
                Close();
                FPinOutStatus[0] = e.Message;
            }
        }
        /// <summary>
        /// Connect the client and server.
        /// </summary>
        /// <param name="portNumber">Port number to listen on.</param>
        public void Connect(int portNumber)
        {
            connected = true;
            client.Connect();

            server = new OSCReceiver(portNumber);
            server.Connect();

            //server loop
            Task.Run(() => {
                while (connected)
                {
                    var packet = server.Receive();

                    if (PacketReceived != null)
                    {
                        PacketReceived(this, packet);
                    }
                }
                server.Close();
            });
        }
        private void oscListenerLoop()
        {
            OSCReceiver oscReceiver    = null;
            OSCMessage  oscWiimoteData = null;

            oscStopNow = false;

            double[] beams = new double[200];

            beams[0] = 0.0d;
            beams[1] = 0.0d;
            beams[2] = 0.0d;

            double accel     = 0.0d;
            double accelBase = 0.0d;
            double speed     = 0.0d;
            double dist      = 0.0d;
            double dT        = 0.0d;
            double par4      = 0.0d;

            long currTick;
            long prevTick;

            currTick = prevTick = DateTime.Now.Ticks;

            try
            {
                int oscPort = Convert.ToInt32(oscPortTextBox.Text);

                oscReceiver = new OSCReceiver(oscPort);

                oscReceiver.Connect();

                Tracer.Trace("OSC connected and listening on port " + oscPort);

                while (!oscStopNow && (oscWiimoteData = (OSCMessage)oscReceiver.Receive()) != null)
                {
                    string addr = oscWiimoteData.Address;

                    if (wiiValuesControls.ContainsKey(addr))
                    {
                        wiimoteValuesUserControl = (WiimoteValuesUserControl)wiiValuesControls[addr];
                    }
                    else
                    {
                        this.Invoke(new MethodInvoker(createWiimoteValuesUserControl));
                        wiiValuesControls.Add(addr, wiimoteValuesUserControl);
                    }

                    wiimoteValuesUserControl.values = oscWiimoteData;


                    switch (addr)
                    {
                    case "/wiimote-g":

                        currTick = DateTime.Now.Ticks;

                        dT = (double)(currTick - prevTick) / 10000000.0d;                                       // sec

                        //   string str = DateTime.Now.ToLongTimeString() + "  OSC packet: " + oscWiimoteData.Address + "   ";

                        int i = 0;

                        foreach (object obj in oscWiimoteData.Values)
                        {
                            //                        str += obj.ToString() + "   ";
                            if (i == 0)
                            {
                                try
                                {
                                    beams[i] = Convert.ToDouble((float)obj);
                                }
                                catch
                                {
                                    beams[i] = 0.0d;
                                }
                                accel = beams[i];                                          //  m/c2
                            }
                            if (i == 4)
                            {
                                try
                                {
                                    beams[i] = Convert.ToDouble((float)obj);
                                }
                                catch
                                {
                                    beams[i] = 0.0d;
                                }
                                par4 = beams[i];
                            }
                            i++;
                        }


                        if (par4 > 0.0d)
                        {
                            accelBase = accel;
                            speed     = 0.0d;
                            dist      = 0.0d;
                        }
                        else
                        {
                            accel -= accelBase;
                            speed += accel * dT;
                            dist  += speed * dT;
                        }

                        // oscilloscope.AddData(beams[0], beams[1], beams[2]);

                        oscilloscope.AddData(accel, speed * 100.0d, dist * 100.0d);


                        //                    Tracer.Trace(str.Trim());

                        prevTick = currTick;
                        break;
                    }
                }
            }
            catch (Exception exc)
            {
                Tracer.Error(exc.ToString());
            }
            finally
            {
                if (oscReceiver != null)
                {
                    oscReceiver.Close();
                }
                Tracer.Trace("OSC finished and closed");
            }
        }