我正在使用 Myo 臂带在 WPF 中开发一个项目,该臂带到目前为止可以识别设备已连接并将信息更新到文本框,但是当我设置事件处理程序以识别是否触发了姿势时,该事件永远不会触发。
我通过使用设备制作姿势并握住它们来调试它,我还在这条线上设置了一个断点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