void startServer() { Debug.Log("cs1\n\n"); HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; var addr = messageReceived.Address; if (addr == "/muse/eeg") { Debug.Log("EEG values: "); foreach (var arg in messageReceived.Arguments) { Debug.Log(arg + " "); } } if (addr == "/muse/elements/alpha_relative") { Debug.Log("Relative Alpha power values: "); foreach (var arg in messageReceived.Arguments) { Debug.Log(arg + " "); } } }; Debug.Log("cs2\n\n"); // Create an OSC server. var listener = new UDPListener(5000, callback); Debug.Log("cs2\n\n"); }
public void TestCallback() { bool cbCalled = false; // The cabllback function HandleOscPacket cb = delegate(OscPacket packet) { var msg = (OscMessage)packet; Assert.AreEqual(2, msg.Arguments.Count); Assert.AreEqual(23, msg.Arguments[0]); Assert.AreEqual("hello world", msg.Arguments[1]); cbCalled = true; }; var l1 = new UDPListener(55555, cb); var sender = new SharpOSC.UDPSender("localhost", 55555); var msg1 = new SharpOSC.OscMessage("/test/address", 23, "hello world"); sender.Send(msg1); // Wait until callback processes its message var start = DateTime.Now; while (cbCalled == false && start.AddSeconds(2) > DateTime.Now) { Thread.Sleep(1); } Assert.IsTrue(cbCalled); l1.Close(); }
void Start() { // Callback function for received OSC messages. HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; var addr = messageReceived.Address; if (addr == "Person0/notch_filtered_eeg") { /* * Debug.Log("eeg START : "); * foreach(var arg in messageReceived.Arguments) { * Debug.Log(float.Parse(arg.ToString()) + " "); * * } */ eeg_data[0] = float.Parse(messageReceived.Arguments[0].ToString()); eeg_data[1] = float.Parse(messageReceived.Arguments[1].ToString()); eeg_data[2] = float.Parse(messageReceived.Arguments[2].ToString()); eeg_data[3] = float.Parse(messageReceived.Arguments[3].ToString()); //CallbackAcc(eeg_data); } }; // Create an OSC server. listener = new UDPListener(5005, callback); Console.WriteLine("Press enter to stop"); Console.ReadLine(); }
private void ThreadMethod() { HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; var addr = messageReceived.Address; if (addr == "Person0/elements/alpha_relative") { for (int i = 0; i < messageReceived.Arguments.Count; i++) { alpha[i] = (float)messageReceived.Arguments[i]; } } else if (addr == "Person0/elements/beta_relative") { for (int i = 0; i < messageReceived.Arguments.Count; i++) { beta[i] = (float)messageReceived.Arguments[i]; } } }; var listener = new UDPListener(5000, callback); // listener.Close(); }
public void setupOSC(int _localPort, string _remoteHost, int _remotePort) { localPort = _localPort; remoteHost = _remoteHost; remotePort = _remotePort; if (listener != null) { listener.Close(); } HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; if (messageReceived != null) { Console.WriteLine("Received a message! " + messageReceived.Address); } }; listener = new UDPListener(localPort, processMessage); sender = new UDPSender(remoteHost, remotePort); sendCurrentSlide(); sendTotalSlides(); }
private void OSCMonitor_Load(object sender, EventArgs e) { clearMessages(); // The cabllback function HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscBundle)packet; OscBundle bundle = (OscBundle)packet; DateTime dt = SharpOSC.Utils.TimetagToDateTime(bundle.Timetag); foreach (OscMessage message in bundle.Messages) { String text; if (checkBoxUTC.Checked) { text = dt.ToString("yyyy-MM-dd HH:mm:ss.fff tt") + " UTC"; } else { text = dt.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss.fff tt") + " Local"; } text += " " + message.Address; if (message.Arguments.Count > 0) { text += " [" + message.Arguments.First().ToString() + "]"; } if (message.Arguments.Count > 1) { foreach (object obj in message.Arguments.Skip(1)) { text += ", [" + obj.ToString() + "]"; } } if (stream) { messages.Add(text); } else { if (messageDict.ContainsKey(message.Address)) { messageDict[message.Address] = text; } else { messageDict.Add(message.Address, text); } } } updateMessageBox(); }; listener = new UDPListener(5000, callback); }
private Singleton() { // The cabllback function HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscBundle)packet; MessageReceived?.Invoke(messageReceived); }; _listener = new UDPListener(1234, callback); }
void OSCListen() { isOSCListning = true; HandleOscPacket callback = delegate(OscPacket packet) { var message = (OscMessage)packet; msgQueue.AddMessage(message); }; var listener = new UDPListener(55555, callback); }
private static float[] acc_recent = { 0.0f, 0.0f, 0.0f }; // Most recently recorded acc data void Start() { // Callback function for received OSC messages. HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; var addr = messageReceived.Address; if (addr == "/muse/acc") { //head position and accleration float[] acc_data = { (float)messageReceived.Arguments[0], (float)messageReceived.Arguments[1], (float)messageReceived.Arguments[2] }; CallbackAcc(acc_data); } else if (addr == "/muse/elements/blink") { blinks = (int)messageReceived.Arguments[0]; } else if (addr == "/muse/elements/jaw_clench") { int clench = (int)messageReceived.Arguments[0]; clenches += clench; if (clenches >= jaw_lim) { jaw++; clenches = 0; } } else if (addr == "/muse/elements/experimental/concentration") { concentration = (float)messageReceived.Arguments[0]; } if (addr == "/muse/batt") { if (battery != (int)messageReceived.Arguments[0]) { battery = (int)messageReceived.Arguments[0]; } } }; // Create an OSC server. listener = new UDPListener(5000, callback); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { HandleOscPacket callback = delegate(OscPacket packet) { var message = ( OscMessage )packet; MOUSE_X = Int32.Parse(message.Arguments[0].ToString()); MOUSE_Y = Int32.Parse(message.Arguments[1].ToString()); TIP_VELOCITY = Int32.Parse(message.Arguments[2].ToString()); }; listener = new UDPListener(55555, callback); base.Initialize(); }
static void Main(string[] args) { // Callback function for received OSC messages. // Prints EEG and Relative Alpha data only. HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; var addr = messageReceived.Address; if (addr == "/muse/eeg") { // Console.Write("EEG values: "); var eeg = new Eeg(); // foreach (var arg in messageReceived.Arguments) // { // Console.Write(arg + " "); // } OnEeg(this, new EegEventArgs() { Eeg = messageReceived.Arguments }); } // if (addr == "/muse/elements/alpha_relative") // { // Console.Write("Relative Alpha power values: "); // foreach (var arg in messageReceived.Arguments) // { // Console.Write(arg + " "); // } // } }; // Create an OSC server. var listener = new UDPListener(5000, callback); Console.WriteLine("Press enter to stop"); Console.ReadLine(); listener.Close(); }
static void Main(string[] args) { /*var message = new SharpOSC.OscMessage("/Knob", 0.5f); * var sender = new SharpOSC.UDPSender("127.0.0.1", 10000); * * while (true) * { * var inp = Console.ReadLine(); * float f = Convert.ToSingle(inp); * message.Arguments[0] = f; * sender.Send(message); * }*/ HandleOscPacket cb = delegate(OscPacket packet) { var msg = ((OscBundle)packet).Messages[0]; Console.WriteLine(msg.Arguments[0].ToString()); }; var l1 = new UDPListener(10001, cb); Console.ReadLine(); }
public UDPListener(int port, HandleOscPacket callback) : this(port) { this.OscPacketCallback = callback; }
public static void Main(string[] args) { // Get a handle to the Calculator application. The window class // and window name were obtained using the Spy++ tool. IntPtr calculatorHandle = FindWindow(null, "Calculator"); // Verify that Calculator is a running process. if (calculatorHandle == IntPtr.Zero) { MessageBox.Show("Calculator is not running."); return; } Button button1 = new Button(); int i = 0; //string filePath = @"c:\temp\test.txt"; // Callback function for received OSC messages. // Prints EEG and Relative Alpha data only. HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; var addr = messageReceived.Address; if (addr == "/muse/elements/blink") { foreach (var arg in messageReceived.Arguments) { if (Convert.ToInt32(arg) == 1) { Console.WriteLine("counter: " + i); Console.WriteLine("1 Blink Detected"); if (i <= 6 && i >= 2) { Console.Write("Double Blink Detected"); SetForegroundWindow(calculatorHandle); SendKeys.SendWait("111"); SendKeys.SendWait("*"); SendKeys.SendWait("11"); SendKeys.SendWait("="); } else { Console.Write("Double Blink Not Deteced"); } i = 0; Console.WriteLine("Stopwatch Reset"); } else { i = i + 1; Console.WriteLine("Not Blink: " + i); } } } }; // Create an OSC server. var listener = new UDPListener(5000, callback); Console.WriteLine("Press enter to stop"); Console.ReadLine(); listener.Close(); }
static void Main(string[] args) { // OSC message/bundle callback handler. // In this example it just outputs all the sent responses and arguments to the console. HandleOscPacket packetCallback = delegate(OscPacket packet) { if (packet is OscMessage) { var message = packet as OscMessage; StringBuilder builder = new StringBuilder(); builder.AppendLine(message.Address); foreach (var argument in message.Arguments) { builder.AppendFormat(" {0} ", argument); } builder.AppendLine(); Console.WriteLine(builder.ToString()); } else if (packet is OscBundle) { StringBuilder builder = new StringBuilder(); var bundle = packet as OscBundle; foreach (var message in bundle.Messages) { builder.AppendLine(message.Address); foreach (var argument in message.Arguments) { builder.AppendFormat(" {0} ", argument); } builder.AppendLine(); Console.WriteLine(builder.ToString()); } } }; // Create a OSC message listener object, lets print out all qtm server replies in a callback method var listener = new UDPListener(55555, packetCallback); // Create a OSC message sender object var sender = new SharpOSC.UDPSender("127.0.0.1", 22225); // Connect sender.Send(new SharpOSC.OscMessage("/qtm", "connect", 55555)); // Ask for QTM version sender.Send(new SharpOSC.OscMessage("/qtm", "qtmversion")); // Ask for general camera system and 3d marker parameters (returned as xml) sender.Send(new SharpOSC.OscMessage("/qtm", "getparameters", "General", "3d")); // Start streaming of frames (just 3d and 6dof data) sender.Send(new SharpOSC.OscMessage("/qtm", "StreamFrames", "AllFrames", "3d", "6d")); // Pressing the escape key will stop streaming and disconnect from qtm while (true) { if (Console.KeyAvailable) { if (Console.ReadKey(false).Key == ConsoleKey.Escape) { break; } } } // Stop streaming sender.Send(new SharpOSC.OscMessage("/qtm", "StreamFrames", "Stop")); // Disconnect from qtm sender.Send(new SharpOSC.OscMessage("/qtm", "disconnect")); }
/* * public void DoThisAllTheTime() * { * var listener = new UDPListener(55555); * //MessageBox.Show("Starting OSC Listener"); * label1.Text = "Starting OSC Listener"; * OscMessage messageReceived = null; * while (messageReceived == null) * { * messageReceived = (OscMessage)listener.Receive(); * Thread.Sleep(1); * } * label1.Text = "Received a message!"; * MessageBox.Show("Received a message!"); * * } */ public void Form1_Load(object sender, EventArgs e) { Run = true; //t = new System.Threading.Thread(DoThisAllTheTime); //t.Start(); //Clear labels. label1.Invoke((MethodInvoker)(() => label1.Text = "")); label_single.Invoke((MethodInvoker)(() => label_single.Text = "")); label_x.Invoke((MethodInvoker)(() => label_x.Text = "")); label_y.Invoke((MethodInvoker)(() => label_y.Text = "")); label_status.Invoke((MethodInvoker)(() => label_status.Text = "")); InitTimer(); HandleOscPacket callback = delegate(OscPacket packet) { //Console.WriteLine("oscPacket"); var messageReceived = (OscMessage)packet; if (messageReceived == null) { return; } if (messageReceived.Address != null) { Console.WriteLine(messageReceived.Address); label1.Invoke((MethodInvoker)(() => label1.Text = messageReceived.Address)); string[] addressParts = messageReceived.Address.Split('/'); Dictionary <string, float> msgVars = new Dictionary <string, float>(); //Console.WriteLine(addressParts[1]); if (messageReceived.Address.Contains("/z") || messageReceived.Address.Contains("nvm")) { //label_status.Invoke((MethodInvoker)(() => label_status.Text = "end string, no action")); return; } else if (messageReceived.Address.Contains("keyboard"))//remote program calls { //Console.WriteLine("keyboard"); //Console.WriteLine(addressParts[2]); SendKeys.SendWait(addressParts[2]); return; } else if (messageReceived.Address.Contains("osc"))//remote program calls { //label_status.Invoke((MethodInvoker)(() => label_status.Text = "end string, no action")); //Console.WriteLine("osc command"); switch (addressParts[2]) { case "sync": //Console.WriteLine("osc sync"); //Form1.invoke((MethodInvoker)(Sync())); this.Invoke((MethodInvoker) delegate { Sync(); }); break; } return; } else if (addressParts.Count() < 4) { return; } else { //Console.WriteLine(addressParts[1]); switch (addressParts[1]) { case "Slider": addressParts[1] = "Strip"; break; case "keyboard": Console.WriteLine("keyboard"); Console.WriteLine(addressParts[2]); SendKeys.SendWait(addressParts[2]); break; } //Console.WriteLine(messageReceived.Arguments.Count.ToString()); //label_status.Invoke((MethodInvoker)(() => label_status.Text = messageReceived.Arguments.Count.ToString())); switch (addressParts[3]) { case "fxy": if (messageReceived.Arguments.Count == 2) { label_single.Invoke((MethodInvoker)(() => label_single.Text = "")); msgVars.Add("fx_x", (float)messageReceived.Arguments[1]); label_x.Invoke((MethodInvoker)(() => label_x.Text = ((float)messageReceived.Arguments[1] - (float)0.5).ToString())); msgVars.Add("fx_y", ConvertRange((float)-0.5, (float)0.5, (float)0, (float)1, (float)messageReceived.Arguments[0])); label_y.Invoke((MethodInvoker)(() => label_y.Text = messageReceived.Arguments[0].ToString())); } else { msgVars.Add("fx_x", (float)0); msgVars.Add("fx_y", (float)0); } break; case "Color": label_single.Invoke((MethodInvoker)(() => label_single.Text = "")); if (messageReceived.Arguments.Count == 2) { label_single.Invoke((MethodInvoker)(() => label_single.Text = "")); msgVars.Add(addressParts[3] + "_x", (float)messageReceived.Arguments[1]); label_x.Invoke((MethodInvoker)(() => label_x.Text = ((float)messageReceived.Arguments[1]).ToString())); if (Convert.ToInt32(addressParts[2]) > 4) { msgVars.Add(addressParts[3] + "_y", (float)messageReceived.Arguments[0] - (float)1); label_y.Invoke((MethodInvoker)(() => label_y.Text = messageReceived.Arguments[0].ToString())); } else { msgVars.Add(addressParts[3] + "_y", ConvertRange((float)-0.5, (float)0.5, (float)0, (float)1, (float)messageReceived.Arguments[0])); label_y.Invoke((MethodInvoker)(() => label_y.Text = ((float)messageReceived.Arguments[0]).ToString())); } } else { msgVars.Add(addressParts[3] + "_x", (float)0); msgVars.Add(addressParts[3] + "_y", (float)0); } break; case "Pan": if (messageReceived.Arguments.Count == 2) { label_single.Invoke((MethodInvoker)(() => label_single.Text = "")); if (addressParts[2] == "5" || addressParts[2] == "6" || addressParts[2] == "7") { //Console.WriteLine("5, 6, OR 7!!!!!!!! "+ ConvertRange((float)-1, (float)1, (float)-0.5, (float)0.5, (float)messageReceived.Arguments[1]).ToString() +" -- " + ConvertRange((float)-1, (float)1, (float)-0.5, (float)0.5, (float)messageReceived.Arguments[0]).ToString()); msgVars.Add(addressParts[3] + "_x", ConvertRange((float)-1, (float)1, (float)-0.5, (float)0.5, (float)messageReceived.Arguments[1])); label_x.Invoke((MethodInvoker)(() => label_x.Text = ((float)messageReceived.Arguments[1]).ToString())); msgVars.Add(addressParts[3] + "_y", ConvertRange((float)-1, (float)1, (float)-0.5, (float)0.5, (float)messageReceived.Arguments[0])); label_y.Invoke((MethodInvoker)(() => label_y.Text = messageReceived.Arguments[0].ToString())); } else { Console.WriteLine("pan"); msgVars.Add(addressParts[3] + "_x", (float)messageReceived.Arguments[1]); //msgVars.Add(addressParts[3] + "_x", ConvertRange((float)-0.5, (float)0.5, (float)0, (float)1, (float)messageReceived.Arguments[1])); label_x.Invoke((MethodInvoker)(() => label_x.Text = ((float)messageReceived.Arguments[1] - (float)0.5).ToString())); //msgVars.Add(addressParts[3] + "_y", (float)messageReceived.Arguments[0] ); msgVars.Add(addressParts[3] + "_y", ConvertRange((float)-0.5, (float)0.5, (float)0, (float)1, (float)messageReceived.Arguments[0])); label_y.Invoke((MethodInvoker)(() => label_y.Text = messageReceived.Arguments[0].ToString())); } } else { msgVars.Add(addressParts[3] + "_x", (float)0); msgVars.Add(addressParts[3] + "_y", (float)0); } break; default: msgVars.Add(addressParts[3], (float)messageReceived.Arguments[0]); label_single.Invoke((MethodInvoker)(() => label_single.Text = messageReceived.Arguments[0].ToString())); label_x.Invoke((MethodInvoker)(() => label_x.Text = "")); label_y.Invoke((MethodInvoker)(() => label_y.Text = "")); break; } if (messageReceived.Address.Contains("reset") || messageReceived.Address.Contains("Reset")) { //Console.WriteLine("RESET!"); foreach (KeyValuePair <string, float> entry in msgVars) { //Console.WriteLine(entry.Key.ToString() + " - " + entry.Value.ToString()); vm.SetParam(addressParts[1] + "[" + addressParts[2] + "]." + entry.Key, (float)0); } var message = new SharpOSC.OscMessage("/" + addressParts[1] + "/" + addressParts[2] + "/" + addressParts[3], (float)0, (float)0.5); if (addressParts[2] == "5" || addressParts[2] == "6" || addressParts[2] == "7") { message = new SharpOSC.OscMessage("/" + addressParts[1] + "/" + addressParts[2] + "/" + addressParts[3], (float)0, (float)0); } oscSender.Send(message); if (addressParts[1] == "Strip") { if (addressParts[2] == "5" || addressParts[2] == "6" || addressParts[2] == "7") { message = new SharpOSC.OscMessage("/Slider/" + addressParts[2] + "/" + addressParts[3], (float)0, (float)0); } else { message = new SharpOSC.OscMessage("/Slider/" + addressParts[2] + "/" + addressParts[3], (float)-0.5, (float)0); } oscSender.Send(message); } } else { // float tmpFloat = 0; foreach (KeyValuePair <string, float> entry in msgVars) { //Console.WriteLine(entry.Key.ToString() + " - " + entry.Value.ToString()); // tmpFloat = (float)entry.Value; vm.SetParam(addressParts[1] + "[" + addressParts[2] + "]." + entry.Key, (float)entry.Value); //var message = new SharpOSC.OscMessage(messageReceived.Address, (float)entry.Value); //oscSender.Send(new SharpOSC.OscMessage(messageReceived.Address, (float)entry.Value)); //message = new SharpOSC.OscMessage(messageReceived.Address + "/Text", (float)entry.Value); //oscSender.Send(new SharpOSC.OscMessage(messageReceived.Address + "/Text", (float)entry.Value)); } } } /* * if (messageReceived.Address.Contains("nvm")) * { * //don't do anything * } * else if (messageReceived.Address.Contains("Color")) * { * vm.SetParam(addressParts[1] + "[" + addressParts[2] + "]." + addressParts[3] + "_y", (float)messageReceived.Arguments[0]); * vm.SetParam(addressParts[1] + "[" + addressParts[2] + "]." + addressParts[3] + "_x", (float)messageReceived.Arguments[1] - (float)0.5); * label_status.Invoke((MethodInvoker)(() => label_status.Text = messageReceived.Arguments[0].ToString() + " - " + messageReceived.Arguments[0].ToString())); * } * else * { * if (messageReceived.Address.Contains("reset")) * { * vm.SetParam(addressParts[1]+"[" + addressParts[2] + "]." + addressParts[3] , 0); * } * else * { * foreach (float test in messageReceived.Arguments) * { * //label_status.Invoke((MethodInvoker)(() => label_status.Text = test.ToString())); * label_status.Invoke((MethodInvoker)(() => label_status.Text = addressParts[1] + "[" + addressParts[2] + "]." + addressParts[3])); * vm.SetParam(addressParts[1] + "[" + addressParts[2] + "]." + addressParts[3], test); * } * } * * } */ } return; }; var listener = new UDPListener(Properties.Settings.Default.portIn, callback); //MessageBox.Show("Starting OSC Listener"); }
public UDPListener(int port, HandleOscPacket callback) : this(port) { this.OscPacketCallback = callback; }
// Use this for initialization void Start() { // Callback function for received OSC messages. // Prints EEG and Relative Alpha data only. HandleOscPacket callback = delegate(OscPacket packet) { // Get the current field type based on player progress FieldType currentFieldType = fieldTypes[playerProgress]; var messageReceived = (OscMessage)packet; var addr = messageReceived.Address; /** * BLINK CONTROLLER */ if (currentFieldType == FieldType.APPLE || currentFieldType == FieldType.ORANGE) { const int BLINK_AVERAGE = 890; const int BLINK_UPPER_THRESHOLD = 1400; const int BLINK_LOWER_THRESHOLD = 200; const int MIN_BLINK_TIME = 750; if (addr == "/muse/eeg") { int current = Convert.ToInt32(messageReceived.Arguments[1]); Direction currentFront = current > BLINK_AVERAGE ? Direction.UP : Direction.DOWN; bool thresholdPassed = current > BLINK_UPPER_THRESHOLD || current < BLINK_LOWER_THRESHOLD; bool blinkChangingFront = previousFront != currentFront; if (blinkChangingFront) { frontNotRegistered = true; } // How much time has passed from the start of the command TimeSpan timeFromCommandStart = DateTime.Now - commandStartTime; // Make sure enough time has passed from last action to not count the same one twice TimeSpan timeFromLastAction = DateTime.Now - lastActionTime; bool enoughTimeFromLastAction = timeFromLastAction > TimeSpan.FromMilliseconds(MIN_BLINK_TIME); // Register only if the current front direction is downwards if (thresholdPassed && frontNotRegistered && currentFront == Direction.DOWN && enoughTimeFromLastAction) { if (timeFromCommandStart < TimeSpan.FromMilliseconds(commandTimeout)) { // If still part of the same command sequence blinkCounter += 1; } else { // The command has timed out and we start a new command blinkCounter = 1; commandStartTime = DateTime.Now; } // In any event we have to reset the front registered frontNotRegistered = false; lastActionTime = DateTime.Now; } // When the time from command start is larger than timeout, end the command if (timeFromCommandStart > TimeSpan.FromMilliseconds(commandTimeout) && blinkCounter > 1) { Debug.Log(name + " blinked " + blinkCounter + " times."); if ( blinkCounter >= 2 && currentFieldType == FieldType.APPLE || blinkCounter >= 3 && currentFieldType == FieldType.ORANGE ) { nextMove(); if (fruitCounter == 0) { canSee[0] = 0; } else if (fruitCounter == 1) { canSee[1] = 0; } else { canSee[2] = 0; } fruitCounter++; } blinkCounter = 0; } previousFront = currentFront; lastBlinkTime = DateTime.Now; } } /** * PUSHUP CONTROLLER */ else if (currentFieldType == FieldType.NORMAL) { const int PU_AVERAGE = 850; const int PU_UPPER_THRESHOLD = 1200; const int PU_LOWER_THRESHOLD = 200; const int MIN_PU_TIME = 1200; if (addr == "/muse/acc") { int current = Convert.ToInt32(messageReceived.Arguments[0]); Direction currentFront = current > PU_AVERAGE ? Direction.UP : Direction.DOWN; bool thresholdPassed = current > PU_UPPER_THRESHOLD || current < PU_LOWER_THRESHOLD; bool blinkChangingFront = PUpreviousFront != currentFront; if (blinkChangingFront) { PUfrontNotRegistered = true; } // Make sure enough time has passed from last PU to not count the same one twice TimeSpan timeFromLastPU = DateTime.Now - lastActionTime; bool enoughTimeFromLastPU = timeFromLastPU > TimeSpan.FromMilliseconds(MIN_PU_TIME); // Register only if the current front direction is downwards if (thresholdPassed && PUfrontNotRegistered && currentFront == Direction.DOWN) { if (enoughTimeFromLastPU) { //PUcounter += 1; nextMove(); Debug.Log(name + " did a push up."); lastActionTime = DateTime.Now; } PUfrontNotRegistered = false; } previousFront = currentFront; } } }; // Create an OSC server. listener = new UDPListener(port, callback); }
public Main() { InitializeComponent(); trackBars = new TrackBar[] { trackBar1, trackBar2, trackBar3, trackBar4, trackBar5, trackBar6, trackBar7, trackBar8 }; labels = new Label[] { label1, label2, label5, label6, label7, label8, label9, label10 }; HandleOscPacket callback = delegate(OscPacket packet) { if (packet is OscMessage) { var msg = (OscMessage)packet; if (msg.Address == "/dmx") { messageQueue.Enqueue(msg); } } else if (packet is OscBundle) { var bundle = (OscBundle)packet; foreach (OscMessage msg in bundle.Messages) { if (msg.Address == "/dmx") { messageQueue.Enqueue(msg); } } } }; updateThread = new Thread(delegate() { OscMessage message; while (true) { if (messageQueue.Count > 0) { message = messageQueue.Dequeue(); if (message != null && OpenDMX.status == FT_STATUS.FT_OK) { int channels = Math.Min(message.Arguments.Count, OpenDMX.UNIVERSE_SIZE); for (int i = 0; i < channels; i++) { try { float value = Convert.ToSingle(message.Arguments[i]); byte byteVal = (byte)(value * 255); OpenDMX.setDmxValue(i + 1, byteVal); mostRecentData[i] = byteVal; } catch (Exception) { } } OpenDMX.streamData(); } } } } ); updateThread.Start(); listener = new UDPListener(7000, callback); refreshTimer.Interval = 500; //ms refreshTimer.Tick += new EventHandler(timer_Tick); refreshTimer.Start(); }
public static void Main(string[] args) { // Get a handle to the Calculator application. The window class // and window name were obtained using the Spy++ tool. IntPtr calculatorHandle = FindWindow(null, "Calculator"); // Verify that Calculator is a running process. if (calculatorHandle == IntPtr.Zero) { MessageBox.Show("Calculator is not running."); return; } Button button1 = new Button(); int i = 0; //string filePath = @"c:\temp\test.txt"; // Callback function for received OSC messages. // Prints EEG and Relative Alpha data only. HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; var addr = messageReceived.Address; // if(addr == "/muse/elements/jaw_clench (0)") { // Console.Write("Jaw clench values: "); // foreach(var arg in messageReceived.Arguments) { // Console.Write(arg + " "); // } // } if (addr == "/muse/elements/blink") { //Stopwatch stopwatch = new Stopwatch(); //TimeSpan ts = new TimeSpan(); //stopwatch.Start(); foreach (var arg in messageReceived.Arguments) { if (Convert.ToInt32(arg) == 1) { Console.WriteLine("counter: " + i); Console.WriteLine("1 blink"); //stopwatch.Stop(); //ts = stopwatch.Elapsed; //ts.ToString("mm\\:ss\\.ff"); //Console.WriteLine("Elapsed:" + ts); //Console.WriteLine(stopwatch.ElapsedMilliseconds); if (i <= 6 && i >= 2) { Console.Write("+ DOUBLE BLINK"); SetForegroundWindow(calculatorHandle); SendKeys.SendWait("111"); SendKeys.SendWait("*"); SendKeys.SendWait("11"); SendKeys.SendWait("="); //button1.Click += new EventHandler(button1_Click); //0xB3 //SendMessage(0xffff, 0xB3, ); //Rectangle bounds = this.Bounds; //using (Bitmap bitmap = new Bitmap(bounds.Width, bounds.Height)) //{ // using (Graphics g = Graphics.FromImage(bitmap)) // { // g.CopyFromScreen(new Point(bounds.Left, bounds.Top), Point.Empty, bounds.Size); // } // bitmap.Save("C://test.jpg", ImageFormat.Jpeg); //} //Process.Start(@"c:\temp\test.txt"); //File.Open(filePath, FileMode.Open, FileAccess.Read); } else { Console.Write("+ FAIL!!!!!"); } //stopwatch.Reset(); i = 0; Console.WriteLine("Stopwatch Reset"); //stopwatch.Start(); } else { i = i + 1; Console.WriteLine("Not Blink: " + i); } } } }; // Create an OSC server. var listener = new UDPListener(5000, callback); Console.WriteLine("Press enter to stop"); Console.ReadLine(); listener.Close(); }
static void Main(string[] args) { // VIRTUAL GAMEPAD INITIALIZATION Console.WriteLine("[PAD] Initializing gamepad"); joystick = new vJoy(); iReport = new vJoy.JoystickState(); if (!joystick.vJoyEnabled()) { Console.WriteLine("[PAD] vJoy driver not enabled!"); return; } else { Console.WriteLine("[PAD] Vendor: {0}\n[PAD] Product :{1}\n[PAD] Version Number:{2}", joystick.GetvJoyManufacturerString(), joystick.GetvJoyProductString(), joystick.GetvJoySerialNumberString()); } VjdStat status = joystick.GetVJDStatus(id); int nButtons = joystick.GetVJDButtonNumber(id); if (nButtons < 7) { Console.WriteLine("[PAD] This app needs at least 7 buttons configured in vJoy to work."); return; } else { Console.WriteLine("[PAD] Available buttons: " + nButtons); } bool sliderR = joystick.GetVJDAxisExist(id, HID_USAGES.HID_USAGE_SL0); bool sliderL = joystick.GetVJDAxisExist(id, HID_USAGES.HID_USAGE_SL1); if (sliderR && sliderL) { Console.WriteLine("[PAD] Sliders enabled"); } else { Console.WriteLine("[PAD] This app needs at least 2 sliders configured in vJoy to work."); return; } if ((status == VjdStat.VJD_STAT_OWN) || ((status == VjdStat.VJD_STAT_FREE) && (!joystick.AcquireVJD(id)))) { Console.WriteLine("[PAD] Failed to acquire vJoy device number {0}.", id); return; } else { Console.WriteLine("[PAD] Acquired: vJoy device number {0}.", id); } HandleOscPacket callback = delegate(OscPacket packet) { var messageReceived = (OscMessage)packet; string addr = messageReceived.Address; string content = messageReceived.Arguments[0].ToString(); switch (messageReceived.Address) { case "/btn-a": if (content == "P") { joystick.SetBtn(true, id, 1); } if (content == "R") { joystick.SetBtn(false, id, 1); } break; case "/btn-b": if (content == "P") { joystick.SetBtn(true, id, 2); } if (content == "R") { joystick.SetBtn(false, id, 2); } break; case "/btn-c": if (content == "P") { joystick.SetBtn(true, id, 3); } if (content == "R") { joystick.SetBtn(false, id, 3); } break; case "/btn-d": if (content == "P") { joystick.SetBtn(true, id, 4); } if (content == "R") { joystick.SetBtn(false, id, 4); } break; case "/fx-l": if (content == "P") { joystick.SetBtn(true, id, 5); } if (content == "R") { joystick.SetBtn(false, id, 5); } break; case "/fx-r": if (content == "P") { joystick.SetBtn(true, id, 6); } if (content == "R") { joystick.SetBtn(false, id, 6); } break; case "/start": if (content == "P") { joystick.SetBtn(true, id, 7); } if (content == "R") { joystick.SetBtn(false, id, 7); } break; case "/vol-l": //lastL = currL; //currL = float.Parse(content); //float deltaL = lastL - currL; //L -= deltaL; int lPos = int.Parse(content); joystick.SetAxis(lPos * 400, id, HID_USAGES.HID_USAGE_SL0); break; case "/vol-r": // lastR = currR; // currR = float.Parse(content); // float deltaR = lastR - currR; // R -= deltaR; int rPos = int.Parse(content); joystick.SetAxis(rPos * 400, id, HID_USAGES.HID_USAGE_SL1); break; } // Console.WriteLine("[OSC] Message Received: Address:" + messageReceived.Address + ", args: " + messageReceived.Arguments[0]); }; var listener = new UDPListener(32000, callback); Console.WriteLine("[OSC] Now listening to messages."); Console.WriteLine("[OSC] Press enter to stop"); Console.ReadLine(); listener.Close(); }