问题描述
我正在尝试使用 LCD 和键盘制作一个计算器项目,但为此我需要知道 NO_KEY 的含义。
:
有人知道它可以做什么吗?
通常,如果没有它,串行监视器会吐出正确的键,但会来回闪烁?
当我添加这一行时,它神奇地起作用了。
感谢您的帮助!
解决方法
您正在使用 keypad.getKey()
方法。这意味着每一帧,您都要求查看键盘上按下的键是什么,即使没有按下某个键。如果没有按键被按下,那么它将给出 NO_KEY
的值。
集成的一种方法是:
if (keypad.getKey() != NO_KEY)
{
// The code here will run whenever there is a key pressed
}
,
这意味着没有按下任何东西。
循环的每个循环,arduino“获取”在缓冲区中等待的当前字符。
如果没有等待字符, public void waitForNewWindowAndSwitchToIt(WebDriver driver) {
String cHandle = driver.getWindowHandle();
String newWindowHandle = null;
Set<String> allWindowHandles = driver.getWindowHandles();
// Wait for 20 seconds for the new window and throw exception if not found
for (int i = 0; i < 20; i++) {
if (allWindowHandles.size() > 1) {
for (String allHandlers : allWindowHandles) {
if (!allHandlers.equals(cHandle))
newWindowHandle = allHandlers;
}
driver.switchTo().window(newWindowHandle);
break;
} else {
}
}
if (cHandle == newWindowHandle) {
throw new RuntimeException("Time out - No window found");
}
}
public boolean closeAllOtherWindows(WebDriver driver,String openWindowHandle) {
Set<String> allWindowHandles = driver.getWindowHandles();
for (String currentWindowHandle : allWindowHandles) {
if (!currentWindowHandle.equals(openWindowHandle)) {
driver.switchTo().window(currentWindowHandle);
driver.close();
}
}
driver.switchTo().window(openWindowHandle);
if (driver.getWindowHandles().size() == 1)
return true;
else
return false;
}
将返回 keypad.getKey()
。
为什么要使用它? NO_KEY
返回按下的键(如果有)。这个功能是 非阻塞。
这意味着您的 arduino 在按下按键之前不会被吸吮。 (不同于keypad.getKey()
)
好的,我的朋友已经告诉我为什么需要这样做。
本质上,getKey 函数总是给出一个字符响应,无论如何,这意味着当没有按下任何键时,它会在串行监视器中显示为一个空格,因此会闪烁。
现在它只会在不等于没有键的情况下发布。
太好了,是时候继续项目的其余部分了!