WideStudio Logo
WideStudio
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"
//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 );
}

Pode-se implementar o procedimento em "triggerHandler()", e passar alguma informação pelo terceiro parâmetro
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
}


Document Release 3.80 for WideStudio ver 3.80, Jan 2005


WideStudio documents index | Table of contents

Copyright(C) WideStudio Development Team, 1999-2005 Last modified: Jan 05, 2005