我正在为Raspberry Pi创建门锁系统。用户刷卡时,门将使用以下代码解锁:
piface.getRelay(PiFaceRelay.K0).open();
我正在尝试在门锁之前创建5秒的延迟,然后使用以下行将其锁定:
piface.getRelay(PiFaceRelay.K0).close();
这是我用来尝试执行5秒钟延迟的代码,但是当前它会解锁,然后立即再次锁定,而这并没有足够的时间让一个人实际推开门:
piface.getRelay(PiFaceRelay.K0).open();
Timer autoLockTimer = new Timer(5000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
piface.getRelay(PiFaceRelay.K0).close();
}
});
autoLockTimer.setInitialDelay(5000);
autoLockTimer.setRepeats(false);
autoLockTimer.start();
我想我只是没有正确使用计时器。任何建议将不胜感激。
最佳答案
为什么不简单(从头开始):
new Thread(new Runnable() {
public void run() {
piface.getRelay(PiFaceRelay.K0).open();
Thread.sleep(5000);
piface.getRelay(PiFaceRelay.K0).close();
}
}).start();