Вызов события, вызванного позой, с помощью повязки Myo

Я разрабатываю проект в WPF, используя повязку Myo, которая до сих пор работает, распознавая, что устройство подключено, и обновляет информацию в текстовом поле, но когда я настраиваю обработчик событий для распознавания запуска позы, событие никогда не срабатывает.

Я отладил это, делая позы с устройством и удерживая их, также я установил точку останова на этой строке pose.Triggered += Pose_Triggered; и начало запуска позы.

Точка останова срабатывает в первой строке, но не вызывает останова на фактическом событии private void Pose_Triggered(object sender, PoseEventArgs e)

Это оболочка C#, которую я использую для проекта: https://github.com/tayfuzun/MyoSharp

Кто-нибудь знает, почему событие не срабатывает, хотя позы делаются?

Это метод, в котором вызывается pose_triggered, и событие:

// listen for when the Myo connects
                hub.MyoConnected += (sender, e) =>
                {

                    this.Dispatcher.Invoke((Action)(() =>
                    {
                        statusTbx.Text = "Myo has connected! " + e.Myo.Handle;
                        e.Myo.Vibrate(VibrationType.Short);

                        // unlock the Myo so that it doesn't keep locking between our poses
                        e.Myo.Unlock(UnlockType.Hold);

                        // setup for the pose we want to watch for
                        var pose = HeldPose.Create(e.Myo, Pose.Fist);


                        pose.Triggered += Pose_Triggered;
                        e.Myo.OrientationDataAcquired += Myo_OrientationDataAcquired;



                    }));

                };

Код сработавшего события:

private void Pose_Triggered(object sender, PoseEventArgs e)
        {
            App.Current.Dispatcher.Invoke((Action)(() =>
            {
                //need to measure abduction of arm from 0 to 180 degrees.
                poseStatusTbx.Text = "{0} arm Myo holding pose {1}" + e.Myo.Arm + e.Myo.Pose;

                pitch = pitchCentre;

            }));    
        }

Вот полный код класса: http://hastebin.com/xinirugufo.cs


person Brian J    schedule 14.01.2015    source источник


Ответы (1)


Я сравниваю пример кода с GitHub и ваш. Вы забыли позвонить pose.Start()?

var pose = HeldPose.Create(e.Myo, Pose.Fist);
pose.Interval = TimeSpan.FromSeconds(0.5); 
pose.Start(); //this???
pose.Triggered += Pose_Triggered;
person kennyzx    schedule 15.01.2015
comment
Дома проверю и сообщу результат. - person Brian J; 15.01.2015