コード例 #1
0
 protected virtual void OnPose(PoseEventArgs e)
 {
     if (Pose != null)
     {
         Pose(this, e);
     }
 }
コード例 #2
0
ファイル: MyoMusic.cs プロジェクト: n0v4c4n3/MyoSharp.GabyRM
 private static void Myo_PoseChanged(object sender, PoseEventArgs e)
 {
     Console.SetCursorPosition(0, 11);
     ClearCurrentConsoleLine();
     Console.Write("Myo del brazo {0} detecto la pose {1}!", e.Myo.Arm, e.Myo.Pose);
     if (e.Myo.Pose.Equals(Pose.DoubleTap) || e.Myo.Pose.Equals(Pose.FingersSpread))
     {
         Console.SetCursorPosition(0, 12);
         ClearCurrentConsoleLine();
         bool togglePlay = Player.TogglePlay();
         Console.WriteLine("Musica on/off: " + togglePlay);
         e.Myo.Vibrate(VibrationType.Long);
     }
     if (e.Myo.Pose.Equals(Pose.WaveOut))
     {
         Player.Stop();
         Console.SetCursorPosition(0, 12);
         ClearCurrentConsoleLine();
         Console.WriteLine("Musica parada");
     }
     if (e.Myo.Pose.Equals(Pose.WaveIn))
     {
         Player.Init();
         Console.SetCursorPosition(0, 2);
         ClearCurrentConsoleLine();
         Console.WriteLine("El repoductor ha sido reinicializado");
     }
 }
コード例 #3
0
 public async void Pose_Triggered(object sender, PoseEventArgs e)
 {
     await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
     {
         tblUpdates.Text = "Pose Held: " + e.Pose.ToString();
     });
 }
コード例 #4
0
        private void Myo_PoseChanged(object sender, PoseEventArgs e)
        {
            var samePose = _lastPose == e.Pose;

            _lastPose      = e.Pose;
            _triggeringMyo = e.Myo;

            lock (_timer)
            {
                if (_timerAlive)
                {
                    return;
                }

                if (samePose && _targetPoses.Contains(e.Pose))
                {
                    if (_timerPaused)
                    {
                        _timerPaused = false;
                        _timer.Start();
                    }
                }
                else
                {
                    _timerPaused = true;
                    _timer.Stop();
                }
            }
        }
コード例 #5
0
ファイル: MyoManager.cs プロジェクト: Hellyon/MyoGame
 private void Pose_Triggered(object sender, PoseEventArgs e)
 {
     if (HeldPoseTriggered != null)
     {
         HeldPoseTriggered.Invoke(sender, e);
     }
 }
コード例 #6
0
        private void Pose_Triggered(object sender, PoseEventArgs e)
        {
            App.Current.Dispatcher.Invoke((Action)(() =>
            {
                eventTbx.Text = "{0} arm Myo holding pose {1}" + e.Myo.Arm + e.Myo.Pose;


                if (e.Myo.Pose == Pose.Fist)
                {
                    e.Myo.Vibrate(VibrationType.Short);
                    fistSpreadScoreCntr++;
                    lblFistScoreCntr.Content = fistSpreadScoreCntr;
                    gestureImg.Source = new BitmapImage(new Uri
                                                            ("/MyoTestv1;component/Images/gesture_icons/blue_outline_LH_fist.png", UriKind.Relative));
                }

                else if (e.Myo.Pose == Pose.FingersSpread)
                {
                    e.Myo.Vibrate(VibrationType.Short);
                    fingersSpreadScoreCntr++;
                    lblFingersSpreadScoreCntr.Content = fingersSpreadScoreCntr;
                    gestureImg.Source = new BitmapImage(new Uri
                                                            ("/MyoTestv1;component/Images/gesture_icons/blue_outline_LH_spread_fingers.png", UriKind.Relative));
                }
            }));
        }
コード例 #7
0
        private void Myo_PoseChanged(object sender, PoseEventArgs e)
        {
            if (_currentSequence.Count == _sequence.Count)
            {
                for (int i = 0; i < _currentSequence.Count; i++)
                {
                    if (_currentSequence[i] != _sequence[i])
                    {
                        var lastItem = _currentSequence[_currentSequence.Count - 1];
                        _currentSequence.Clear();
                        _currentSequence.Add(lastItem);
                        return;
                    }
                }

                // got a match
                OnPoseSequenceCompleted(e.Myo, e.Timestamp, _currentSequence);
                _currentSequence.Clear();
            }
            else
            {
                switch (e.Pose)
                {
                case Pose.WaveOut:
                case Pose.WaveIn:
                case Pose.FingersSpread:
                case Pose.Fist:
                case Pose.ThumbToPinky:
                    _currentSequence.Add(e.Pose);
                    break;
                }
            }
        }
コード例 #8
0
 private void PoseChanged(object sender, PoseEventArgs e)
 {
     if (streamData == true)
     {
         Publish("/i5/myo/pose", e.Myo.Pose.ToString());
     }
 }
コード例 #9
0
 private static void Myo_PoseChanged(object sender, PoseEventArgs e)
 {
     Console.WriteLine("{0} arm Myo detected {1} pose is {2}.",
                       e.Myo.Arm,
                       e.Myo.Pose,
                       (e.Myo.IsUnlocked ? "unlocked" : "locked"));
 }
コード例 #10
0
 private void Myo_PoseChanged(object sender, PoseEventArgs e)
 {
     if (PoseToSound.ContainsKey(e.Pose))
     {
         PoseToSound[e.Pose].Play();
     }
 }
コード例 #11
0
        private async void Myo_PoseChanged(object sender, PoseEventArgs e)
        {
            switch (e.Myo.Pose)
            {
            case Pose.DoubleTap:
                if (_lightState)
                {
                    await _dataAccess.On(new Models.Light()
                    {
                        State = true, LightId = 1, Color = new Models.Color()
                        {
                            R = 1, G = 1, B = 1
                        }
                    });
                }
                else
                {
                    await _dataAccess.Off(1);
                }
                _lightState = !_lightState;
                break;

            case Pose.Unknown:
                break;

            default:
                break;
            }
        }
コード例 #12
0
        private static void Myo_PoseChanged(object sender, PoseEventArgs e)
        {
            Console.WriteLine("MYO: Detected {1} pose!", e.Myo.Arm, e.Myo.Pose);

            if (e.Myo.Pose == Pose.Fist)
            {
                e.Myo.Vibrate(VibrationType.Short);
                initPitch = 0;
                initRoll  = 0;
                initYaw   = 0;

                byte[] msgBytes = { 1 };
                SendUDP(msgBytes);

                e.Myo.OrientationDataAcquired += Myo_OrientationDataAcquired;
            }
            else
            {
                if (!double.IsNaN(initPitch))
                {
                    e.Myo.Vibrate(VibrationType.Medium);
                }
                initPitch = double.NaN;
                initRoll  = double.NaN;
                initYaw   = double.NaN;

                byte[] msgBytes = { 0 };
                SendUDP(msgBytes);

                e.Myo.OrientationDataAcquired -= Myo_OrientationDataAcquired;
            }
        }
コード例 #13
0
 private void OnPose(object sender, PoseEventArgs e)
 {
     if (e.Myo.Pose == Pose.DoubleTap)
     {
         // use doubletap trigger myo lock
         if (_isLock)
         {
             e.Myo.Unlock(UnlockType.Hold);
         }
         else
         {
             e.Myo.Lock();
         }
     }
     else if (e.Myo.Pose == Pose.Rest)
     {
         ReceiveOver();
     }
     else
     {
         if (!_onReceive)
         {
             ReceiveStart();
         }
         _currentPose = e.Pose.ToString();
         ReceivePose(_currentPose);
     }
 }
コード例 #14
0
        private static void Myo_PoseChanged(object sender, PoseEventArgs e)
        {
            Console.WriteLine("{0} arm Myo detected {1} pose!", e.Myo.Arm, e.Myo.Pose);
            string requestUri = _destinationUrl;

            switch (e.Myo.Pose)
            {
            case Poses.Pose.WaveIn:
                Console.WriteLine("Previous Track");
                requestUri += "previous_track";
                break;

            case Poses.Pose.WaveOut:
                Console.WriteLine("Next Track");
                requestUri += "next_track";
                break;

            case Poses.Pose.FingersSpread:
                Console.WriteLine("Volume Up");
                requestUri += "volume_up";
                break;

            case Poses.Pose.Fist:
                Console.WriteLine("Volume Down");
                requestUri += "volume_down";
                break;

            case Poses.Pose.Rest:
                break;

            case Poses.Pose.DoubleTap:
                Console.WriteLine("start_stop");
                requestUri += "start_stop";
                break;

            default:
                break;
            }
            if (_enableWebTransmission)
            {
                try
                {
                    _webRequest        = WebRequest.Create(requestUri);
                    _webRequest.Method = "POST";
                    WebResponse response = _webRequest.GetResponse();
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
        }
コード例 #15
0
        protected virtual void OnTriggered(IMyo myo, DateTime timestamp, Pose pose)
        {
            var handler = Triggered;

            if (handler != null)
            {
                var args = new PoseEventArgs(
                    myo,
                    timestamp,
                    pose);
                handler.Invoke(this, args);
            }
        }
コード例 #16
0
        protected virtual void OnTriggered(IMyo myo, DateTime timestamp, Pose pose)
        {
            //Contract.Requires<ArgumentNullException>(myo != null, "myo");

            var handler = Triggered;
            if (handler != null)
            {
                var args = new PoseEventArgs(
                    myo,
                    timestamp,
                    pose);
                handler.Invoke(this, args);
            }
        }
コード例 #17
0
        //Called when a pose is detected and outputs the pose to console,
        //also sets the start sequence
        private static void Myo_PoseChanged(object sender, PoseEventArgs e)
        {
            Console.WriteLine("{0} arm Myo detected {1} pose!", e.Myo.Arm, e.Myo.Pose);
            Console.WriteLine("Pose = " + e.Myo.Pose);

            //Start sequence is wave out
            if (e.Myo.Pose == Pose.WaveOut)
            {
                startSequence = true;
            }
            if (e.Myo.Pose == Pose.WaveIn)
            {
                startSequence = false;
            }
        }
コード例 #18
0
ファイル: PoseEventArgsTests.cs プロジェクト: raphaelfp/pyo
        public void GetMyo_ValidState_EqualsConstructorParameter()
        {
            // Setup
            var myo = new Mock <IMyo>();

            var args = new PoseEventArgs(
                myo.Object,
                DateTime.UtcNow,
                Pose.Unknown);

            // Execute
            var result = args.Myo;

            // Assert
            Assert.Equal(myo.Object, result);
        }
コード例 #19
0
ファイル: PoseEventArgsTests.cs プロジェクト: raphaelfp/pyo
        public void GetTimestamp_ValidState_EqualsConstructorParameter()
        {
            // Setup
            var timestamp = DateTime.UtcNow;

            var args = new PoseEventArgs(
                new Mock <IMyo>().Object,
                timestamp,
                Pose.Unknown);

            // Execute
            var result = args.Timestamp;

            // Assert
            Assert.Equal(timestamp, result);
        }
コード例 #20
0
ファイル: PoseEventArgsTests.cs プロジェクト: raphaelfp/pyo
        public void GetPose_ValidState_EqualsConstructorParameter()
        {
            // Setup
            var pose = Pose.Fist;

            var args = new PoseEventArgs(
                new Mock <IMyo>().Object,
                DateTime.UtcNow,
                pose);

            // Execute
            var result = args.Pose;

            // Assert
            Assert.Equal(pose, result);
        }
コード例 #21
0
        private void Myo_PoseChanged(object sender, PoseEventArgs e)
        {
            //This event checks all the poses

            //If user makes fist, check to see if game has started, if not start the game and vibrate
            if (e.Myo.Pose == Pose.Fist)
            {
                if (isGameStarted == false)
                {
                    startGame();
                    e.Myo.Vibrate(VibrationType.Medium);
                    timeLeft      = 30;
                    isGameStarted = true;
                    isGameOver    = false;
                }
            }

            //If user makes waveIn gesture, it is players move, game has started and game isn't over, call attack method and play sound
            if (e.Myo.Pose == Pose.WaveIn)
            {
                if (isPlayerMove == true && isGameStarted == true && isGameOver == false)
                {
                    attacklbl.Invoke(new MethodInvoker(delegate { attacklbl.ForeColor = System.Drawing.Color.DeepSkyBlue; }));
                    swordSlash.Play();
                    updateAttackMove();
                    System.Threading.Thread.Sleep(500);
                    attacklbl.Invoke(new MethodInvoker(delegate { attacklbl.ForeColor = System.Drawing.Color.OrangeRed; }));
                }
            }

            //If user makes waveOut gesture, it is players move, game has started and game isn't over, call heal method and play sound
            if (e.Myo.Pose == Pose.WaveOut)
            {
                if (isPlayerMove == true && isGameStarted == true && playerRage >= 1 && isGameOver == false)
                {
                    heallbl.Invoke(new MethodInvoker(delegate { heallbl.ForeColor = System.Drawing.Color.DeepSkyBlue; }));
                    playerHeal.Play();
                    updateHealMove();
                    System.Threading.Thread.Sleep(500);
                    heallbl.Invoke(new MethodInvoker(delegate { heallbl.ForeColor = System.Drawing.Color.OrangeRed; }));
                }
                else if (isPlayerMove == true && isGameStarted == true)
                {
                    statusLbl.Invoke(new MethodInvoker(delegate { statusLbl.Text = "You do not have enough rage to heal yourself."; }));
                }
            }
        }
コード例 #22
0
ファイル: MyoTests.cs プロジェクト: raphaelfp/pyo
        public void ChannelEventReceived_PoseChanged_TriggersPoseChangedEvent()
        {
            // Setup
            var routeEventArgs = new RouteMyoEventArgs(
                new IntPtr(123),
                new IntPtr(789),
                MyoEventType.Pose,
                DateTime.UtcNow);

            var channelListener = new Mock <IChannelListener>(MockBehavior.Strict);

            var myoDeviceDriver = new Mock <IMyoDeviceDriver>(MockBehavior.Strict);

            myoDeviceDriver
            .SetupGet(x => x.Handle)
            .Returns(new IntPtr(123));
            myoDeviceDriver
            .Setup(x => x.GetEventPose(routeEventArgs.Event))
            .Returns(Pose.Fist);

            var myo = Myo.Create(
                channelListener.Object,
                myoDeviceDriver.Object);

            PoseEventArgs actualEventArgs = null;
            object        actualSender    = null;

            myo.PoseChanged += (sender, args) =>
            {
                actualSender    = sender;
                actualEventArgs = args;
            };

            // Execute
            channelListener.Raise(
                x => x.EventReceived += null,
                routeEventArgs);

            // Assert
            Assert.Equal(myo, actualSender);
            Assert.Equal(myo, actualEventArgs.Myo);
            Assert.Equal(routeEventArgs.Timestamp, actualEventArgs.Timestamp);
            Assert.Equal(Pose.Fist, actualEventArgs.Pose);

            myoDeviceDriver.VerifyGet(x => x.Handle, Times.Once);
        }
コード例 #23
0
 private void Myo_PoseChanged(object sender, PoseEventArgs e)
 {
     RhinoApp.WriteLine("Pose Changed: {0}", (object)e.Pose.ToString());
     if (e.Pose == Pose.DoubleTap)
     {
         e.Myo.Lock();
     }
     if (e.Pose == Pose.Fist)
     {
         MyoController.mouse_event(2, Cursor.Position.X, Cursor.Position.Y, 0, 0);
         MyoController.mouse_event(4, Cursor.Position.X, Cursor.Position.Y, 0, 0);
     }
     if (e.Pose == Pose.FingersSpread)
     {
         this._fingerSpreadDone             = true;
         this._toolBoxConduit.Enabled       = (true);
         this._toolBoxConduit.PopUpPosLeft  = RiftViewportConduit.CursorInLeftViewport;
         this._toolBoxConduit.PopUpPosRight = RiftViewportConduit.CursorInRightViewport;
     }
     if (e.Pose == Pose.FingersSpread || !this._fingerSpreadDone)
     {
         return;
     }
     this._fingerSpreadDone       = false;
     this._toolBoxConduit.Enabled = (false);
     if (!this._toolBoxConduit.ExecuteCommand())
     {
         MyoController.mouse_event(8, Cursor.Position.X, Cursor.Position.Y, 0, 0);
         MyoController.mouse_event(16, Cursor.Position.X, Cursor.Position.Y, 0, 0);
     }
     if (!UserInput.MiniViewportsOn)
     {
         return;
     }
     for (int index = 0; index < 3; ++index)
     {
         if (Viewports.MiniViews[index] != null && Viewports.MiniViews[index].Document != null)
         {
             Viewports.MiniViews[index].Redraw();
         }
     }
 }
コード例 #24
0
ファイル: MyoCar.cs プロジェクト: Tineler/Myo-Car-Control
        /// <summary>
        /// Handles the pose changed event.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private static void PoseChanged(object sender, PoseEventArgs e)
        {
            if (e.Myo.Pose == Pose.WaveIn)
            {
                HandleWaveInPose();
            }

            if (e.Myo.Pose == Pose.WaveOut)
            {
                HandleWaveOutPose();
            }

            if (e.Myo.Pose == Pose.Fist && e.Myo.Arm == Arm.Left)
            {
                HandleLeftArmFistPose();
            }

            if (e.Myo.Pose == Pose.Fist && e.Myo.Arm == Arm.Right)
            {
                HandleRightArmFistPose();
            }
        }
コード例 #25
0
        private void Myo_PoseChanged(object sender, PoseEventArgs e)
        {
            MethodInvoker inv2;
            var           braco = e.Myo.Arm == Arm.Right ? "Direito" : e.Myo.Arm == Arm.Left ? "Esquerdo" : "Desconhecido";
            MethodInvoker inv   = delegate { this.label3.Text = $"Pose \"{e.Myo.Pose}\" detectada no braco {braco}"; };

            //Evento de clique
            if ($"{e.Myo.Pose}" == "Fist")
            {
                inv2 = delegate { this.label13.Text = "Entro"; };
                this.Invoke(inv2);
                click_cont = 1;
            }
            else if ($"{e.Myo.Pose}" == "FingersSpread")
            {
                inv2 = delegate { this.label13.Text = "Clico"; };
                this.Invoke(inv2);
                if (((Cursor.Position.X - 190) - this.label12.Location.X) <= 20 && ((Cursor.Position.Y - 30) - this.label12.Location.Y) <= 20)
                {
                    this.label12.Click += label12_Click;
                }
            }
        }
コード例 #26
0
ファイル: AndroidMyo.cs プロジェクト: st3veV/myo-unity
 protected virtual void OnPoseChange(PoseEventArgs e)
 {
     var handler = PoseChange;
     if (handler != null) handler(this, e);
 }
コード例 #27
0
 private void Pose_Triggered(object sender, PoseEventArgs e)
 {
     //m_nPos = (int)e.Pose;
     //Ojw.CMessage.Write("{0} arm Myo detected [{1}] pose", e.Myo.Arm, m_nPos);
 }
コード例 #28
0
ファイル: MainMyoListenner.cs プロジェクト: VLbest/RD_Sources
 private void Myo_PoseChanged(object sender, PoseEventArgs e)
 {
     Debug.WriteLine("{0} arm Myo detected {1} pose!", e.Myo.Arm, e.Myo.Pose);
 }
コード例 #29
0
ファイル: FlockOfBirds.cs プロジェクト: rpavlik/chromium
 protected virtual void OnPose(PoseEventArgs e)
 {
     if (Pose != null)
     Pose(this, e);
 }
コード例 #30
0
 private static void Pose_Triggered(object sender, PoseEventArgs e)
 {
     Console.WriteLine("{0} arm Myo is holding pose {1}!", e.Myo.Arm, e.Pose);
 }
コード例 #31
0
 private static void Myo_PoseChanged(object sender, PoseEventArgs e)
 {
     Console.WriteLine("{0} arm Myo detected {1} pose!", e.Myo.Arm, e.Myo.Pose);
 }
コード例 #32
0
 void pose_Triggered(object sender, PoseEventArgs e)
 {
     InvokeData(e.Pose.ToString());
 }