resolution of Time in Rev

Alex Tweedly alex at tweedly.net
Fri Aug 19 13:42:00 EDT 2005


Jon wrote:

> I'm trying to schedule something to happen some time in the future.  
> Due to some other complexities, I cannot just do a
>
> send "mouseUp" to me in 1000 seconds
>
> Rather, I have to wake up every 10 seconds and figure out whether it 
> is time to do the processing or not.  The current code is presented 
> below.
>
> The interesting thing is that, despite the claim that Rev times are in 
> seconds, and even in milliseconds, the values I'm seeing are in 
> increments of 60 seconds.  I flagged a line in the code below.  Rather 
> than seeing "60" and then "50" and then "40", etc, I instead see "60" 
> 6 times and then "0".  Am I doing something wrong?  Or, rather, what 
> am I doing wrong?
>
Yes :-)
Not entirely sure - there may be multiple things ...

> BTW: feel free to show me how I should have written this: it is hugely 
> awkward and could be done much easier in languages that I know better.
>
> :)
>
> Jon
>
>
> on mouseup
>   local mostRecentFTPTime
>   -- is it time yet?
>   convert the date && the time to dateItems
>   subtract field "TestFreq" from item 5 of it
>   convert it to seconds
>   put item 1 of it into currTime
>   if currTime < mostRecentFTPTime then
>      -- show the user how long before next test
>      set the text of field "TimeToGo" to mostRecentFTPTime - currTime 
> & " secs to go"  --  this is the line I'm talking about
>      send "mouseUp" to me in 10 seconds
>      exit mouseUp               end if
>
>  --  do the FTP stuff here!
>
>   convert the date && the time to seconds
>   put it into mostRecentFTPTime
>   send "mouseUp" to me in 10 seconds
> end MouseUp
>  

1. I *think* you want the declaration of mostRecentFTPTime to be outside 
the handler.
A local declared inside handler gives you a "handler-local" variable - 
which is reset each time you enter the handler.
A local declared outside any handler is a "script-local" variable, and 
retains its value between calls.

2. Unless you need to for some reason I don't see here, don't mess 
around with date & time.

Does "TestFreq" change ? If not, I'd do something like the following :

> local  nextFTPTime
> on mouseUp
>   if the seconds > nextFTPTime then
>      do ftp Stuff
>      put the seconds + field "TestFreq" into nextFTPTime
>   end if
>   send "mouseUp" to me in 10 seconds
> end mouseUp

or if you want to monitor it, replace the "end if" by

>     else
>        put nextFTPTime - the seconds & "seconds to go" into field 
> "TimeToGo"
>     end if


If TestFreq does vary, then you need to do more like

> local mostRecentFTPTime
> on mouseUp
>    if the seconds > mostRecentFTPTime + field "TestFreq" then
>       do ftp Stuff
>       put the seconds into mostRecentFTPTime
>    end if
>   send "mouseUp" to me in 10 seconds
> end mouseUp


-- 
Alex Tweedly       http://www.tweedly.net



-- 
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.338 / Virus Database: 267.10.12/77 - Release Date: 18/08/2005




More information about the use-livecode mailing list