WideStudio/MWT Logo
WideStudio/MWT
Programming Guide
WideStudio/MWT Index
Table of contents


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
}


Document Release 3.90 for WideStudio/MWT ver 3.90, Jul 2005


WideStudio/MWT documents index | Table of contents

Copyright(C) WideStudio/MWT Development Team, 1999-2005 Last modified: Jul 31, 2005