real time monitoring, etc... was Revolution Reading GPS Data,

Ben Rubinstein benr_mc at cogapp.com
Tue Mar 4 05:21:52 EST 2008


On 4/3/08 08:04, viktoras didziulis wrote:
>  ...trying to figure out more than one (well... two) way of  how one can 
> make Revolution read a constant data stream coming via sockets, "never 
> ending" log files,  GPSes or any other real time monitoring system. 
> Application has to display the changing status of these readings and in 
> the same time have the user interface with all the buttons and menus 
> completely responsive to user actions.
> 
> So far the only way I can imagine is creating 2 separate applications - 
> [snip]
> 2) application GUI has to be split into 2 separate windows, I would 
> prefer having both app_1 and app_2 in a single window.
> 
> Are the other ways to handle this in Revolution without having to write 
> an external handler in C++?

Yes.  There are two things to notice here:
  - using "send" command with a delay, even a tiny one
  - many of the relevant commands, eg "read from socket", allow you to 
specificy a callback message.

Using these features effectively gives you... we're not allowed to say 
threads, but multiple apparently simultaneous/parallel execution paths.  I've 
done exactly this with a GPS, where the app had a normal responsive user 
interface, and was also updating the display and sometimes taking special 
actions in response to reports from the GPS.

Obviously you need to program with care in these areas to avoid deadlocks, 
resource clashes etc; but with a little care it's perfectly possible to deal 
with the kind of things you're talking about, without using external handlers, 
two apps, or even two windows.

HTH,

- Ben




More information about the Use-livecode mailing list