使用Myo手臂带调用姿势触发事件

时间:2015-01-14 22:51:49

标签: c# wpf events dispatcher myo

我正在使用Myo arm乐队在WPF中开发一个项目,该乐队目前在识别设备已连接并更新信息到文本框时工作,但当我设置事件处理程序以识别是否触发了姿势事件永远不会发生。

我通过使用设备进行姿势调整并对其进行调试,同时我在此行[{1}}上设置了一个断点,并触发了姿势触发事件的开始。

断点在第一行触发,但它不会触发实际事件pose.Triggered += Pose_Triggered;上的断点

这是我用于项目的C#包装器:https://github.com/tayfuzun/MyoSharp

有人知道为什么事件没有触发,虽然正在进行姿势吗?

这是调用private void Pose_Triggered(object sender, PoseEventArgs e)的方法和事件:

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;



                    }));

                };

以下是该课程的完整代码:http://hastebin.com/xinirugufo.cs

1 个答案:

答案 0 :(得分:2)

我比较了sample code from GitHub和你的。{3}}。你忘了打电话给pose.Start()吗?

var pose = HeldPose.Create(e.Myo, Pose.Fist);
pose.Interval = TimeSpan.FromSeconds(0.5); 
pose.Start(); //this???
pose.Triggered += Pose_Triggered;