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(); } }
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(); } }
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"); } }