How to use the timer
You can execute the procedure after an interval or in cycles.
The timer class | Access function |
WSDtimer | WSGIappTimer() |
How to execute the procedure after an interval
At first, prepare the procedure to execute,
and register it to the timer as trigger driven.
The method | Description |
addTriggerProc() | adds procedures as trigger driven |
delTriggerProc() | deletes a added procedures |
#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 );
}
You can implement the procedure you want in "triggerHandler()",
and pass some data by the third parameter:void* of WSDtimer::addTriggerProc().
WSDtimer::addTriggerProc() returns a timer id.
You can cancel the timer by the id with WSDtimer::delTriggerProc().
Notice: After executing the procedure, it will not update the instances
automatically, so you have to do it yourself if needed.
//a sample of the trigger procedure.
void timerHandler(unsigned char clock,void* data){
WSCbase* object = (WSCbase*)data;
object->setProperty(WSNlabelString,"hello.");
object->update(); //update the instance.
}
How to execute the procedure after in cycles
At first, prepare the procedure to execute,
and register it to the timer as cycle driven.
The method | Description |
addTimerProc() | adds procedures as cycle driven. |
delTimerProc() | deletes added procedure. |
#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 );
}
You can implement the procedure you want in "timerHandler()",
and pass some data by the third parameter:void* of WSDtimer::addTimerProc().
WSDtimer::addTimerProc() returns a timer id.
You can cancel the timer by the id with WSDtimer::delTimerProc().
Notice: After executing the procedure, it will not update the instances
automatically, so you have to do it yourself if needed.
The cycles: 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
}