我正在使用C#构建一个带有Raspberry Pi 3的机器人汽车。我可以使用用户界面上的按钮或键盘来控制它。
按钮的问题在于,当我单击按钮时,该功能将不会停止,直到我按下另一个按钮。我要么在点击按钮时需要一种检查方式,要么在按钮未被点击时进行检查。
我已经查看过按钮控制的其他帖子,但无法真正得到任何工作。
在按键的情况下,它正常工作,因为当我停止按下按钮时它停止移动。我只是将其添加到XAML页面中。这是由于KeyUp位。
KeyDown="Background_KeyDown_1" KeyUp="Background_KeyUp_1">
这是C#代码。
//Event for when key is pressed
private void Background_KeyDown_1(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e)
{
KeyDirection(e.Key);
}
//Event when key is unpressed, emulates 'Enter' which represents stop.
private void Background_KeyUp_1(object sender, Windows.UI.Xaml.Input.KeyRoutedEventArgs e)
{
KeyDirection(Windows.System.VirtualKey.Enter);
}
//This guy is called when a key is pressed or unpressed.
public void KeyDirection(Windows.System.VirtualKey vkey)
{
//Detects which key has been pressed, then calls Direction();
switch (vkey)
{
case Windows.System.VirtualKey.W:
Direction("forwards");
break;
case Windows.System.VirtualKey.A:
Direction("left");
break;
case Windows.System.VirtualKey.S:
Direction("backwards");
break;
case Windows.System.VirtualKey.D:
Direction("right");
break;
case Windows.System.VirtualKey.Enter:
Direction("stop");
break;
default:
Direction("stop");
break;
}
}
截至目前,我无法找到让它发挥作用的方法。我希望以前有工作的人可以告诉我他们是如何做到的。
干杯,卡勒姆:)