これまでのところ、デバイスが接続されていることを認識してテキストボックスに情報を更新する 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