roTimer
Este objeto permite que el script active eventos en una fecha/hora específica o durante intervalos especificados. Los eventos se activan entregando objetos roTimerEvent al puerto de mensajes especificado. El equivalente en JavaScript es .setTimeout()/.setInterval().
ifTimer
SetTime(hour As Integer, minute As Integer, second As Integer, millisecond As Integer) As Void
Establece la hora para que se active el evento. En general, si un valor es -1, entonces es un comodín y hará que el evento se active cada vez que coincida el resto de la especificación. Si no hay comodines, entonces el temporizador se activará solo una vez cuando ocurra la hora especificada.
No se admiten temporizadores periódicos que se activen cada segundo. Los parámetros segundos y milisegundos deben ser cero si hay comodines en cualquier otra parte.
SetTime(a As Integer, b As Integer, c As Integer)
SetDate(year As Integer, month As Integer, day As Integer) As Void
Establece la fecha para que se active el evento. En general, si un valor es -1, entonces es un comodín y hará que el evento se active cada vez que coincida el resto de la especificación. Si no hay comodines, entonces el temporizador se activará solo una vez cuando ocurra la fecha/hora especificada.
SetDayOfWeek(day_of_week As Integer) As Void
Establece el día de la semana para que se active el evento. En general, si un valor es -1, entonces es un comodín y hará que el evento se active cada vez que coincida el resto de la especificación. Si no hay comodines, entonces el temporizador se activará solo una vez cuando ocurra la fecha/hora especificada.
Es posible, usando una combinación de llamadas a SetDate() y SetDayOfWeek(), especificar combinaciones no válidas que nunca ocurrirán. Si las especificaciones incluyen algún comodín, entonces las especificaciones de second y millisecond deben ser cero; los eventos se generarán como máximo una vez por minuto cerca del minuto completo.
SetDateTime(date_time As roDateTime) As Void
Establece la hora en la que desea que se active el evento a partir de un objeto roDateTime. No es posible establecer comodines usando este método.
Start() As Boolean
Inicia el temporizador basándose en los valores actuales especificados usando las funciones anteriores.
Stop() As Void
Detiene el temporizador.
SetElapsed(seconds As Integer, milliseconds As Integer)
Configura un temporizador para activarse una vez que haya transcurrido el período de tiempo especificado. A diferencia de los métodos de temporizador absoluto anteriores, los cambios en el reloj del sistema no afectarán el período del temporizador SetElapsed().
ifMessagePort
SetPort(port As roMessagePort) As Void
Publica mensajes de tipo roTimerEvent en el puerto de mensajes adjunto.
ifUserData
SetUserData(user_data As Object)
Establece los datos de usuario que se devolverán cuando se generen eventos.
GetUserData() As Object
Devuelve los datos de usuario que se han establecido previamente mediante SetUserData(). Devolverá Inválido si no se ha establecido ningún dato.
ifIdentity
GetIdentity() As Integer
Devuelve un número único que puede utilizarse para identificar cuándo los eventos se originan en este objeto.
La interfaz ifIdentity está obsoleta. Recomendamos usar la interfaz ifUserData en su lugar.
Ejemplos
Este script utiliza el método SetElapsed() para crear un temporizador que se activa cada 30 segundos:
Sub Main()
mp = CreateObject("roMessagePort")
timer = CreateObject("roTimer")
timer.SetPort(mp)
timer.SetElapsed(30, 0)
print "Start at "; Uptime(0)
timer.Start()
while true
ev = mp.WaitMessage(0)
if type(ev) = "roTimerEvent" then
print "Timer event received at "; Uptime(0)
timer.Start()
else
print "Another event arrived: "; type(ev)
end if
end while
End SubEste script crea un temporizador que se activa cada minuto usando comodines en la especificación del temporizador:
st=CreateObject("roSystemTime")
timer=CreateObject("roTimer")
mp=CreateObject("roMessagePort")
timer.SetPort(mp)
timer.SetDate(-1, -1, -1)
timer.SetTime(-1, -1, 0, 0)
timer.Start()
while true
ev = Wait(0, mp)
if (type(ev) = "roTimerEvent") then
print "timer event received"
else
print "unexpected event received"
endif
endwhileEste script crea un temporizador que se activa una vez en una fecha/hora específica.
timer=CreateObject("roTimer")
mp=CreateObject("roMessagePort")
timer.SetPort(mp)
timer.SetDate(2008, 11, 1)
timer.SetTime(0, 0, 0, 0)
timer.Start()
while true
ev = Wait(0, mp)
if (type(ev) = "roTimerEvent") then
print "timer event received"
else
print "unexpected event received"
endif
endwhile