[R] Wait for keystroke or timeout

biostatmatt biostatmatt at gmail.com
Fri May 28 02:38:20 CEST 2010



On Thu, 2010-05-27 at 19:08 -0400, Prof. John C Nash wrote:
> I would like to have a function that would wait either until a specified timeout (in
> seconds preferably) or until a key is pressed. I've found such a function quite useful in
> other programming environments in setting up dialogs with users or displaying results,
> rather like a timed slideshow that can be speeded up by hitting a key.
> 
> Searching R-seek has led to wait() in the package 'audio', but when I try, for example,
> 
>     joe<-wait(readline("hit a key to continue"), timeout=6)
> 
> I am forced to wait the full timeout.
> 
> Probably someone has done this before and I'm just not using the right search terms.
> Suggestions welcome.
> 
> Thanks in advance.
> 
> JN
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

John, 

What operating system do you use? I don't know of an existing solution
to this problem (although someone else might). However, I recently
participated in a discussion on the r-devel list (cc'd) here

<http://r.789695.n4.nabble.com/Serial-connections-td2017474.html>,

about implementing a POSIX (Linux/Mac OSX) TTY (terminal) connection for
R to interface with a serial port. However, I am certain that a tty
connection for R could provide the functionality you are looking for, on
POSIX systems.

P.S. Maybe Simon (from the above discussion) has the right idea, that a
tty connection should exploit the full POSIX terminal API, then input
issues like this would have easy solutions... 

P.P.S The Win32 serial communications API
<http://msdn.microsoft.com/en-us/library/ms810467.aspx>
also provides a "wait or event" blocking mechanism.

-Matt



More information about the R-help mailing list