Ищу приложение дождется получения ответа от пользователя с клавиатуры с помощью функции keyPressed(). Я разделил приложение на несколько функций (некоторые из них здесь не показаны) и жду ответа в цикле while в runTrialEvent(). Однако ответ никогда не принимается после запуска функции runTrialEvent(). Я знаю, что именно в этом заключается проблема, но не до конца понимаю, почему.
У меня есть следующий код в функции runTrialEvent(), которая запускается нажатием клавиши «t» на клавиатуре. .
runTrialEvent()
Код: Выделить всё
void runTrialEvent(Serial myPort)
{
//////////////////////////////////////////////
//This While Loop is where the issues arise
while (trialTimer.isFinished() == false && userResponded == false )
{
println("Awaiting User Response");
delay (300);
}
//////////////////////////////////////////////////
if (userResponded == true)
{
//Debug Info
println("User responded in time ");
}
else if (trialTimer.isFinished() == true)
{
println("User failed to respond in time ");
}
}
keyPressed()
Код: Выделить всё
void keyPressed()
{
if (key == 'f' || key == 'F' )
{
println("User Answered First");
//allTrials[i].setUserAnswer("F");
userResponded = true;
println("User Response Recorded ");
}
else if (key == 's' || key == 'S')
{
println("User Answered Second");
//allTrials[i].setUserAnswer("S");
userResponded = true;
println("User Response Recorded ");
}
}
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/454 ... g-function
Мобильная версия