Bugfix: More reliable way to determine if the connection is ready to execute comands.
This commit is contained in:
parent
9cdd988bff
commit
27187b5e75
|
@ -293,14 +293,17 @@ public class RuffyScripter {
|
||||||
|
|
||||||
boolean connectInitSuccessful = ruffyService.doRTConnect() == 0;
|
boolean connectInitSuccessful = ruffyService.doRTConnect() == 0;
|
||||||
log.debug("Connect init successful: " + connectInitSuccessful);
|
log.debug("Connect init successful: " + connectInitSuccessful);
|
||||||
while (currentMenu == null) {
|
|
||||||
log.debug("Waiting for first menu update to be sent");
|
log.debug("Waiting for first menu update to be sent");
|
||||||
|
// Note: there was an 'if(currentMenu == null)' around the next call, since
|
||||||
|
// the rtDisconnected callback sets currentMenu = null. However, there were
|
||||||
|
// race conditions, so it was removed. And really, waiting for an update
|
||||||
|
// to come in is a much safer bet.
|
||||||
|
|
||||||
// waitForMenuUpdate times out after 60s and throws a CommandException.
|
// waitForMenuUpdate times out after 60s and throws a CommandException.
|
||||||
// if the user just pressed a button on the combo, the screen needs to time first
|
// if the user just pressed a button on the combo, the screen needs to time first
|
||||||
// before a connection is possible. In that case, it takes 45s before the
|
// before a connection is possible. In that case, it takes 45s before the
|
||||||
// connection comes up.
|
// connection comes up.
|
||||||
waitForMenuUpdate(90);
|
waitForMenuUpdate(90);
|
||||||
}
|
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
throw new CommandException().exception(e).message("Unexpected exception while initiating/restoring pump connection");
|
throw new CommandException().exception(e).message("Unexpected exception while initiating/restoring pump connection");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue