Я создаю систему запирания двери для малины Pi. Когда пользователь пойла своей карты дверь отпирает, используя следующий код:Five Second Pause
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();
Я предполагаю, что я просто не использую таймер правильно. Любые советы будут очень признательны.
Какой тип 'Timer' вы используете? Основываясь на том, как он строится, он не похож на ['java.util.Timer'] (http://docs.oracle.com/javase/7/docs/api/java/util/Timer.html) – Krease
Это таймер качания: импорт javax.swing.Timer; – Suipaste
Похоже, что он должен работать с точки зрения «Таймер» - я мало знаю о малине-пи, - попытались ли вы прокомментировать содержимое вашего «actionPerformed» (или добавить некоторые записи), чтобы убедиться, действительно ли это конкретный вызов 'close', который запускается преждевременно? – Krease