![]() |
Programming Guide |
WideStudio Index Table of contents |
Como usar o timer
Pode-se executar procedimentos após um intervalo de tempo ou um número de ciclos de máquina.
A classe Timer função de acesso
WSDtimer WSGIappTimer()
Como executar um procedimento depois de um intervalo?
Primeiro, prepare o procedimento para executar, registrando-o no timer como orientado a diparador (trigger driven).
O método Descrição addTriggerProc() adicione procedimentos orientados a trigger.
delTriggerProc() delete os procedimentos adicionados #include "WSDtimer.h"Pode-se implementar o procedimento em "triggerHandler()", e passar alguma informação pelo terceiro parâmetro
//the procedure which is executed by the timer ( trigger driven )
void triggerHandler(unsigned char clock,void* data){
//The parameter: data is the third parameter
// of the method: addTriggerProc().
//To do:
}
void event_procedure(WSCbase* obj){
//this parameter is passed to the procedure.
void* data = (void*)1234;
//add the procedure to the timer (trigger driven) //after 1000ms
long id = WSGIappTimer()->addTriggerProc( triggerHandler,WS1000MS,data );
...
//if cancel...
WSGIappTimer()->delTriggerProc( id );
}
void* de WSDtimer::addTriggerProc().
WSDtimer::addTriggerProc() retorna um timer id (identificação de timer). Pode-se cancelar o timier pela sua id com WSDtimer::delTriggerProc().
Nota: Depois de executar o procedimento, ele não será atualizado automaticamente, então faz-se necessário fazê-lo.
//um exemplo de procedimento de disparo (trigger)
void timerHandler(unsigned char clock,void* data){
WSCbase* object = (WSCbase*)data;
object->setProperty(WSNlabelString,"hello.");
object->update(); //update the instance.
}
Como executar o procedimento depois de um número de ciclos de máquina
Primeiro, prepare o procedimento a executar, registrando-o no times como orientado a cíclo (cycle driven).
O método Descrição addTimerProc() adiciona procedimentos orientados a ciclos delTimerProc() deleta os procedimentos orientados. #include "WSDtimer.h"
//the procedure which is executed by the timer ( cycle driven )
void timerHandler(unsigned char clock,void* data){
//clock is a counter of the interval of 250ms
//The parameter: data is the third parameter of the method: addTimerProc().
//To do:
}
void event_procedure(WSCbase* obj){
//this parameter is passed to the procedure.
void* data = (void*)1234;
//add the procedure to the timer (cycle driven) //500ms interval
long id = WSGIappTimer()->addTimerProc( timerHandler,WS500MS,data );
..
//if cancel..
WSGIappTimer()->delTimerProc( id );
}Pode-se implementar um procedimento que se queira em "timerHandler()", e passar dados pelo terceiro parâmetro void* of WSDtimer::addTimerProc().
WSDtimer::addTimerProc() retorna uma id (identificação) de timer, que não será automaticamente atualizada, e portanto deverá ser feita manualmente.
Ciclos: WS250MS,WS500MS,WS750,WS1000MS,WS1250MS,... (250ms interval)
//a sample of the timer procedure.
void timerHandler(unsigned char clock,void* data){
WSCbase* object = (WSCbase*)data;
object->setProperty(WSNlabelString,"Hello!");
object->update(); //update the instance
}
Copyright(C) WideStudio Development Team, 1999-2005 | Last modified: Jan 05, 2005 |