コード例 #1
0
 private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
 {
     if (listener != null)
     {
         listener.Close();
     }
 }
コード例 #2
0
        public void TestByteCallback()
        {
            bool cbCalled = false;
            // The cabllback function
            HandleBytePacket cb = delegate(byte[] packet)
            {
                var msg = (OscMessage)OscPacket.GetPacket(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();
        }
コード例 #3
0
        public void TestMessage()
        {
            var listener = new UDPListener(55555);

            var sender = new SharpOSC.UDPSender("localhost", 55555);

            // Test every message type (except Symbol)
            var msg1 = new SharpOSC.OscMessage(
                "/test/address",

                23,
                42.42f,
                "hello world",
                new byte[3] {
                2, 3, 4
            },
                -123456789123,
                new Timetag(DateTime.Now.Date).Tag,
                new Timetag(DateTime.Now.Date.AddMonths(1)),
                (double)1234567.890,
                new Symbol("wut wut"),
                (char)'x',
                new RGBA(20, 40, 60, 255),
                new Midi(3, 110, 55, 66),
                true,
                false,
                null,
                Double.PositiveInfinity
                );

            OscMessage msgRevc = null;

            sender.Send(msg1);
            msgRevc = (OscMessage)listener.Receive();
            Assert.NotNull(msgRevc);

            Assert.AreEqual("/test/address", msgRevc.Address);
            Assert.AreEqual(16, msgRevc.Arguments.Count);

            Assert.AreEqual(23, msgRevc.Arguments[0]);
            Assert.AreEqual(42.42f, msgRevc.Arguments[1]);
            Assert.AreEqual("hello world", msgRevc.Arguments[2]);
            Assert.AreEqual(new byte[3] {
                2, 3, 4
            }, msgRevc.Arguments[3]);
            Assert.AreEqual(-123456789123, msgRevc.Arguments[4]);
            Assert.AreEqual(new Timetag(DateTime.Now.Date), msgRevc.Arguments[5]);
            Assert.AreEqual(new Timetag(DateTime.Now.Date.AddMonths(1)), msgRevc.Arguments[6]);
            Assert.AreEqual((double)1234567.890, msgRevc.Arguments[7]);
            Assert.AreEqual(new Symbol("wut wut"), msgRevc.Arguments[8]);
            Assert.AreEqual((char)'x', msgRevc.Arguments[9]);
            Assert.AreEqual(new RGBA(20, 40, 60, 255), msgRevc.Arguments[10]);
            Assert.AreEqual(new Midi(3, 110, 55, 66), msgRevc.Arguments[11]);
            Assert.AreEqual(true, msgRevc.Arguments[12]);
            Assert.AreEqual(false, msgRevc.Arguments[13]);
            Assert.AreEqual(null, msgRevc.Arguments[14]);
            Assert.AreEqual(Double.PositiveInfinity, msgRevc.Arguments[15]);

            listener.Close();
        }
コード例 #4
0
ファイル: CallbackTest.cs プロジェクト: ValdemarOrn/SharpOSC
        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();
        }
コード例 #5
0
        private void MainDashboard_Closing(object sender, CancelEventArgs e)
        {
            // Kill all the threads to prevent the program from crashing.
            StreamDeckWorker.Dispose();
            LimelightWorker.Dispose();
            UpdateWorker.Dispose();

            // Close the OSC receiver.
            Receiver.Close();
        }
コード例 #6
0
ファイル: ListenerTest.cs プロジェクト: ValdemarOrn/SharpOSC
        public void CloseListener()
        {
            var l1 = new UDPListener(55555);
            var isnull = l1.Receive();
            l1.Close();

            var l2 = new UDPListener(55555);
            isnull = l2.Receive();
            l2.Close();
        }
コード例 #7
0
        public void CloseListener()
        {
            var l1     = new UDPListener(55555);
            var isnull = l1.Receive();

            l1.Close();

            var l2 = new UDPListener(55555);

            isnull = l2.Receive();
            l2.Close();
        }
コード例 #8
0
 void OnApplicationQuit()
 {
     if (m_ServerSession != null)
     {
         m_ServerSession.Close();
         m_ServerSession = null;
     }
     if (m_ClientSession != null)
     {
         m_ClientSession.Close();
         m_ClientSession = null;
     }
 }
コード例 #9
0
 public bool StopReceiving()
 {
     if (this.isReceiving)
     {
         listener.Close();
         this.isReceiving = false;
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #10
0
        public void TestBundle()
        {
            var listener = new UDPListener(55555);

            var sender1 = new SharpOSC.UDPSender("localhost", 55555);
            var msg1    = new SharpOSC.OscMessage("/test/address1", 23, 42.42f, "hello world", new byte[3] {
                2, 3, 4
            });
            var msg2 = new SharpOSC.OscMessage("/test/address2", 34, 24.24f, "hello again", new byte[5] {
                5, 6, 7, 8, 9
            });
            var dt     = DateTime.Now;
            var bundle = new SharpOSC.OscBundle(Utils.DateTimeToTimetag(dt), msg1, msg2);

            sender1.Send(bundle);
            sender1.Send(bundle);
            sender1.Send(bundle);

            var recv = (OscBundle)listener.Receive();

            recv = (OscBundle)listener.Receive();
            recv = (OscBundle)listener.Receive();


            Assert.AreEqual(dt.Date, recv.Timestamp.Date);
            Assert.AreEqual(dt.Hour, recv.Timestamp.Hour);
            Assert.AreEqual(dt.Minute, recv.Timestamp.Minute);
            Assert.AreEqual(dt.Second, recv.Timestamp.Second);
            //Assert.AreEqual(dt.Millisecond, recv.DateTime.Millisecond); Ventus not accurate enough

            Assert.AreEqual("/test/address1", recv.Messages[0].Address);
            Assert.AreEqual(4, recv.Messages[0].Arguments.Count);
            Assert.AreEqual(23, recv.Messages[0].Arguments[0]);
            Assert.AreEqual(42.42f, recv.Messages[0].Arguments[1]);
            Assert.AreEqual("hello world", recv.Messages[0].Arguments[2]);
            Assert.AreEqual(new byte[3] {
                2, 3, 4
            }, recv.Messages[0].Arguments[3]);

            Assert.AreEqual("/test/address2", recv.Messages[1].Address);
            Assert.AreEqual(4, recv.Messages[1].Arguments.Count);
            Assert.AreEqual(34, recv.Messages[1].Arguments[0]);
            Assert.AreEqual(24.24f, recv.Messages[1].Arguments[1]);
            Assert.AreEqual("hello again", recv.Messages[1].Arguments[2]);
            Assert.AreEqual(new byte[5] {
                5, 6, 7, 8, 9
            }, recv.Messages[1].Arguments[3]);

            listener.Close();
        }
コード例 #11
0
ファイル: ListenerTest.cs プロジェクト: ValdemarOrn/SharpOSC
        public void CloseListenerException()
        {
            UDPListener l1 = null;
            bool ex = false;
            try
            {
                l1 = new UDPListener(55555);
                var isnull = l1.Receive();
                var l2 = new UDPListener(55555);
            }
            catch (Exception e)
            {
                ex = true;
            }

            Assert.IsTrue(ex);
            l1.Close();
        }
コード例 #12
0
        public void CloseListenerException()
        {
            UDPListener l1 = null;
            bool        ex = false;

            try
            {
                l1 = new UDPListener(55555);
                var isnull = l1.Receive();
                var l2     = new UDPListener(55555);
            }
            catch (Exception e)
            {
                ex = true;
            }

            Assert.IsTrue(ex);
            l1.Close();
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: io0/WinMuseEEG
        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();
        }
コード例 #14
0
        public void TestBundle()
        {
            var listener = new UDPListener(55555);

            var sender1 = new SharpOSC.UDPSender("localhost", 55555);
            var msg1 = new SharpOSC.OscMessage("/test/address1", 23, 42.42f, "hello world", new byte[3] { 2, 3, 4 });
            var msg2 = new SharpOSC.OscMessage("/test/address2", 34, 24.24f, "hello again", new byte[5] { 5, 6, 7, 8, 9 });
            var dt = DateTime.Now;
            var bundle = new SharpOSC.OscBundle(Utils.DateTimeToTimetag(dt), msg1, msg2);

            sender1.Send(bundle);
            sender1.Send(bundle);
            sender1.Send(bundle);

            var recv = (OscBundle)listener.Receive();
            recv = (OscBundle)listener.Receive();
            recv = (OscBundle)listener.Receive();

            Assert.AreEqual(dt.Date, recv.Timestamp.Date);
            Assert.AreEqual(dt.Hour, recv.Timestamp.Hour);
            Assert.AreEqual(dt.Minute, recv.Timestamp.Minute);
            Assert.AreEqual(dt.Second, recv.Timestamp.Second);
            //Assert.AreEqual(dt.Millisecond, recv.DateTime.Millisecond); Ventus not accurate enough

            Assert.AreEqual("/test/address1", recv.Messages[0].Address);
            Assert.AreEqual(4, recv.Messages[0].Arguments.Count);
            Assert.AreEqual(23, recv.Messages[0].Arguments[0]);
            Assert.AreEqual(42.42f, recv.Messages[0].Arguments[1]);
            Assert.AreEqual("hello world", recv.Messages[0].Arguments[2]);
            Assert.AreEqual(new byte[3] { 2, 3, 4 }, recv.Messages[0].Arguments[3]);

            Assert.AreEqual("/test/address2", recv.Messages[1].Address);
            Assert.AreEqual(4, recv.Messages[1].Arguments.Count);
            Assert.AreEqual(34, recv.Messages[1].Arguments[0]);
            Assert.AreEqual(24.24f, recv.Messages[1].Arguments[1]);
            Assert.AreEqual("hello again", recv.Messages[1].Arguments[2]);
            Assert.AreEqual(new byte[5] { 5, 6, 7, 8, 9 }, recv.Messages[1].Arguments[3]);

            listener.Close();
        }
コード例 #15
0
ファイル: frmMain.cs プロジェクト: frcteam195/CSPIDTuner
        private void frmMain_Load(object sender, EventArgs e)
        {
            updateThread = new Thread(() =>
            {
                var listener = new UDPListener(PORT);
                OscMessage messageReceived = null;

                int nameUpdateCounter = 0;

                Stopwatch stopWatch = new Stopwatch();
                stopWatch.Start();

                while (runThread == true)
                {
                    /**
                     * Tuning Packet Descriptor
                     * Actual Value, Requested Value, IAccum, System Name
                     */
                    if (!initCompleted)
                    {
                        //Initialize the connection
                        sendIAccumReset();
                        initCompleted = true;
                    }

                    messageReceived = (OscMessage)listener.Receive();
                    if (messageReceived != null)
                    {
                        switch (messageReceived.Address)
                        {
                        case "/PIDData":
                            try
                            {
                                double actualVal    = (double)messageReceived.Arguments[0];
                                double requestedVal = (double)messageReceived.Arguments[1];
                                actualPoints.Add(actualVal);
                                requestedPoints.Add(requestedVal);
                                if (stopWatch.ElapsedMilliseconds > 200)
                                {
                                    //Update TextBox UI Every 200ms to avoid slowing down the app
                                    double iAccum = (double)messageReceived.Arguments[2];
                                    double err    = requestedVal - actualVal;
                                    averageError.AddNumber(err);
                                    txtActualVal.Invoke((MethodInvoker) delegate { txtActualVal.Text = actualVal.ToString("0.####"); });
                                    txtDesiredVal.Invoke((MethodInvoker) delegate { txtDesiredVal.Text = requestedVal.ToString("0.####"); });
                                    txtDeviation.Invoke((MethodInvoker) delegate { txtDeviation.Text = err.ToString("0.####"); });
                                    txtAverageDev.Invoke((MethodInvoker) delegate { txtAverageDev.Text = averageError.GetAverage().ToString("0.####"); });
                                    txtIAccum.Invoke((MethodInvoker) delegate { txtIAccum.Text = iAccum.ToString("0.####"); });

                                    if (nameUpdateCounter++ % 5 == 0)
                                    {
                                        txtSysName.Invoke((MethodInvoker) delegate { txtSysName.Text = (string)messageReceived.Arguments[3]; });
                                    }

                                    if (messageCounter > 200)
                                    {
                                        sleepRate = 0;
                                    }
                                    else
                                    {
                                        sleepRate = (int)((200.0 / messageCounter) / 2.0);
                                    }
                                    messageCounter = 0;
                                    stopWatch.Restart();
                                }
                            }
                            catch (Exception) { }
                            break;

                        default:
                            break;
                        }

                        messageCounter++;
                    }

                    if (sleepRate > 0)
                    {
                        Thread.Sleep(sleepRate);
                    }
                }

                listener.Close();
            });
            updateThread.Start();

            pidChart.Hoverable         = false;
            pidChart.DisableAnimations = true;
            pidChart.DataTooltip       = null;

            numkP.LostFocus        += sendPIDUpdate;
            numkI.LostFocus        += sendPIDUpdate;
            numkD.LostFocus        += sendPIDUpdate;
            numkF.LostFocus        += sendPIDUpdate;
            numAccel.LostFocus     += sendPIDUpdate;
            numVel.LostFocus       += sendPIDUpdate;
            numRamp.LostFocus      += sendPIDUpdate;
            numIZone.LostFocus     += sendPIDUpdate;
            numSetpoint.LostFocus  += sendPIDUpdate;
            numMaxIAccum.LostFocus += sendPIDUpdate;

            numkP.KeyDown        += checkEnter_Pressed;
            numkI.KeyDown        += checkEnter_Pressed;
            numkD.KeyDown        += checkEnter_Pressed;
            numkF.KeyDown        += checkEnter_Pressed;
            numAccel.KeyDown     += checkEnter_Pressed;
            numVel.KeyDown       += checkEnter_Pressed;
            numRamp.KeyDown      += checkEnter_Pressed;
            numIZone.KeyDown     += checkEnter_Pressed;
            numSetpoint.KeyDown  += checkEnter_Pressed;
            numMaxIAccum.KeyDown += checkEnter_Pressed;
        }
コード例 #16
0
        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();
        }
コード例 #17
0
ファイル: movement.cs プロジェクト: Eljy/iCreate2018
 void OnDestroy()
 {
     print("Script was destroyed");
     listener.Close();
 }
コード例 #18
0
 void OnApplicationQuit()
 {
     listener.Close();
 }
コード例 #19
0
 internal void CloseListener()
 {
     listener.Close();
 }
コード例 #20
0
 public void Dispose()
 {
     _listener.Close();
 }
コード例 #21
0
        public Task TotalMixListener(string bus, string ip, int port)
        {
            bankSettingInputBus.Clear();
            bankSettingPlaybackBus.Clear();
            bankSettingOutputBus.Clear();

            var       listener  = new UDPListener(settings.ListeningPort);
            OscBundle message   = null;
            bool      done      = false;
            string    snapRegEx = @"^\/$";
            Regex     r         = new Regex(snapRegEx, RegexOptions.IgnoreCase);

            SendOscCommand("/1/bus" + bus, 1.0f, ip, port);
            while (done == false)
            {
                message = (OscBundle)listener.Receive();
                if (message != null)
                {
                    Match m = r.Match(message.Messages[0].Address);

                    if (bus == "Input")
                    {
                        for (int i = 0; i < message.Messages.Count; i++)
                        {
                            if (bankSettingInputBus.ContainsKey(message.Messages[i].Address))
                            {
                                bankSettingInputBus.Remove(message.Messages[i].Address);
                            }
                            bankSettingInputBus.Add(message.Messages[i].Address, message.Messages[i].Arguments[0].ToString());
                        }
                        if ((m.Success && bankSettingInputBus.Count >= 5) || bankSettingInputBus.Count > 145)
                        {
                            break;
                        }
                    }
                    if (bus == "Playback")
                    {
                        for (int i = 0; i < message.Messages.Count; i++)
                        {
                            if (bankSettingPlaybackBus.ContainsKey(message.Messages[i].Address))
                            {
                                bankSettingPlaybackBus.Remove(message.Messages[i].Address);
                            }
                            bankSettingPlaybackBus.Add(message.Messages[i].Address, message.Messages[i].Arguments[0].ToString());
                        }
                        break;
                    }
                    if (bus == "Output")
                    {
                        for (int i = 0; i < message.Messages.Count; i++)
                        {
                            if (bankSettingOutputBus.ContainsKey(message.Messages[i].Address))
                            {
                                bankSettingOutputBus.Remove(message.Messages[i].Address);
                            }
                            bankSettingOutputBus.Add(message.Messages[i].Address, message.Messages[i].Arguments[0].ToString());
                        }
                        break;
                    }
                }
            }
            listener.Close();
            return(Task.CompletedTask);
        }
コード例 #22
0
        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();
        }
コード例 #23
0
        public void TestMessage()
        {
            var listener = new UDPListener(55555);

            var sender = new SharpOSC.UDPSender("localhost", 55555);

            // Test every message type (except Symbol)
            var msg1 = new SharpOSC.OscMessage(
                "/test/address",

                23,
                42.42f,
                "hello world",
                new byte[3] { 2, 3, 4 },
                -123456789123,
                new Timetag(DateTime.Now.Date).Tag,
                new Timetag(DateTime.Now.Date.AddMonths(1)),
                (double)1234567.890,
                new Symbol("wut wut"),
                (char)'x',
                new RGBA(20, 40, 60, 255),
                new Midi(3, 110, 55, 66),
                true,
                false,
                null,
                Double.PositiveInfinity
            );

            OscMessage msgRevc = null;

            sender.Send(msg1);
            msgRevc = (OscMessage)listener.Receive();
            Assert.NotNull(msgRevc);

            Assert.AreEqual("/test/address", msgRevc.Address);
            Assert.AreEqual(16, msgRevc.Arguments.Count);

            Assert.AreEqual(23,												msgRevc.Arguments[0]);
            Assert.AreEqual(42.42f,											msgRevc.Arguments[1]);
            Assert.AreEqual("hello world",									msgRevc.Arguments[2]);
            Assert.AreEqual(new byte[3] { 2, 3, 4 },						msgRevc.Arguments[3]);
            Assert.AreEqual(-123456789123,									msgRevc.Arguments[4]);
            Assert.AreEqual(new Timetag(DateTime.Now.Date),					msgRevc.Arguments[5]);
            Assert.AreEqual(new Timetag(DateTime.Now.Date.AddMonths(1)),	msgRevc.Arguments[6]);
            Assert.AreEqual((double)1234567.890,							msgRevc.Arguments[7]);
            Assert.AreEqual(new Symbol("wut wut"),							msgRevc.Arguments[8]);
            Assert.AreEqual((char)'x',										msgRevc.Arguments[9]);
            Assert.AreEqual(new RGBA(20, 40, 60, 255),						msgRevc.Arguments[10]);
            Assert.AreEqual(new Midi(3, 110, 55, 66),						msgRevc.Arguments[11]);
            Assert.AreEqual(true,											msgRevc.Arguments[12]);
            Assert.AreEqual(false,											msgRevc.Arguments[13]);
            Assert.AreEqual(null,											msgRevc.Arguments[14]);
            Assert.AreEqual(Double.PositiveInfinity,						msgRevc.Arguments[15]);

            listener.Close();
        }
コード例 #24
0
        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();
        }
コード例 #25
0
 public void changeScene()
 {
     listener.Close();
 }