ŸÀ̸Ӹ¦ »ç¿ëÇϱ⿡´Â
ŸÀÌ¸Ó °´Ã¼¸¦ »ç¿ëÇÔÀ¸·Î¼ ÀÏÁ¤½Ã°£ °æ°úÈÄÀÇ Ã³¸®³ª ÀÏÁ¤½Ã°£°£°ÝÀÇ
󸮸¦ ½ÇÇàÇÒ¼öÀÖ½À´Ï´Ù.
ŸÀÌ¸Ó Å¬·¡½º | ÀνºÅϽº Á¢±Ù(access) ÇÔ¼ö |
WSDtimer | WSGIappTimer() |
ÀÏÁ¤½Ã°£ °æ°úÈÄÀÇ Ã³¸®¸¦ Çϱ⿡´Â
ÀÏÁ¤½Ã°£ °æ°úÈÄÀÇ Ã³¸®¸¦ Çϱ⿡´Â, ¿ì¼± ŸÀ̸ӿ¡¼ ±âµ¿µÇ¿© 󸮸¦ ½ÇÇàÇÏ´Â ÇÔ¼ö¸¦
¸¶·ÃÇÕ´Ï´Ù. ´ÙÀ½¿¡ ŸÀÌ¸Ó °´Ã¼¿¡ ´ëÇؼ Æ®¸®°Å(trigger) ±âµ¿À¸·Î ±× ½ÇÇà
ÇÔ¼ö¸¦ µî·ÏÇÕ´Ï´Ù.
ŸÀ̸ӵî·Ï ¸â¹ö ÇÔ¼ö | ±â´É |
addTriggerProc() | Æ®¸®°Å(trigger) ±âµ¿µî·Ï ÇÔ¼ö |
delTriggerProc() | Æ®¸®°Å(trigger) ±âµ¿ »èÁ¦ ÇÔ¼ö |
#include <WSDtimer.h>
// ŸÀ̸ӿ¡¼ ±âµ¿µÇ´Â ó¸® ÇÔ¼öÀÇ »ùÇÃ
void triggerHandler(unsigned char clock,void* data){
//clock ´Â 250ms ¸¶´Ù ¿Ã¶ó°¡´Â Ä«¿îÆ®
//data ´Â ŸÀ̸ӵî·ÏÇÒ¶§ ¿Å°ÜÁø µ¥ÀÌÅÍ
//¿©±â¼ ŸÀÌ¸Ó Ã³¸®¸¦ ÇÑ´Ù...
}
void event_procedure(WSCbase* obj){
//¿©±â¼ ÁöÁ¤µÈ µ¥ÀÌÅÍ°¡ ŸÀÌ¸Ó Ã³¸® ÇÔ¼ö¿¡ ¿Å°ÜÁø´Ù.
void* data = (void*)1234;
//ÀÏÁ¤½Ã°£ °æ°úÈÄ¿¡ 1¹ø ±âµ¿Çϴ ŸÀÌ¸Ó ÇÔ¼öÀÇ µî·Ï //1000ms ÈÄ¿¡ ±âµ¿
long id = WSGIappTimer()->addTriggerProc( triggerHandler,WS1000MS,data );
// ŸÀ̸Ӹ¦ µµÁß¿¡¼ ¸ØÃâ °æ¿ì´Â
WSGIappTimer()->delTriggerProc( id );
}
triggerHandler() ÇÔ¼ö¿¡´Â ŸÀ̸ӿ¡¼ ±âµ¿µÇ¿© ½ÇÇàÇÒ Ã³¸®¸¦ ¾¹´Ï´Ù.
triggerHahdler() ÇÔ¼ö¿¡ µ¥ÀÌÅ͸¦ ÁÙ °æ¿ì´Â addTriggerProc() ÀÇ
Á¦3Àμö¿¡ void* ·Î ³Ñ±é´Ï´Ù. addTriggerProc() ÀÇ °á°ú°ªÀº ŸÀÌ¸Ó Ã³¸®ÀÇ
ID °¡ µ¹¾Æ¿É´Ï´Ù. Ȥ½Ã ±× ŸÀÌ¸Ó Ã³¸®¸¦ ¸ØÃâ °æ¿ì´Â
delTriggerProc() ·Î ±× ID ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
¶ÇÇÑ À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ °æ¿ì¿Í ´Þ¸® ŸÀÌ¸Ó Ã³¸® ÇÔ¼öÀÇ °æ¿ì´Â
°´Ã¼ÀÇ °»½Å 󸮰¡ ¾ÈºÒ¸®±â¶§¹®¿¡ °´Ã¼ÀÇ ¼Ó¼ºÄ¡µîÀ»
º¯°æÇÑ °æ¿ì¿¡´Â update()¸¦ ºÒ·¯ ¹¦È °»½ÅÀ» ÇØÁÖ¼¼¿ä.
// ŸÀ̸ӿ¡¼ ±âµ¿µÇ´Â ó¸® ÇÔ¼öÀÇ »ùÇÃ
void timerHandler(unsigned char clock,void* data){
WSCbase* object = (WSCbase*)data;
object->setProperty(WSNlabelString," ½Ã°£ÀÔ´Ï´Ù");
object->update(); // °´Ã¼ÀÇ ¹¦È °»½Å
}
ÀÏÁ¤½Ã°£°£°Ý¸¶´Ù 󸮸¦ Çϱ⿡´Â
ÀÏÁ¤½Ã°£°£°Ý¸¶´Ù 󸮸¦ Çϱ⿡´Â ¿ì¼± ŸÀ̸ӿ¡¼ ±âµ¿µÇ¿© 󸮸¦ ÇÏ´Â ÇÔ¼ö¸¦
¸¶·ÃÇÕ´Ï´Ù. ´ÙÀ½¿¡ ŸÀÌ¸Ó °´Ã¼¿¡ ´ëÇؼ ŸÀÌ¸Ó ±âµ¿À¸·Î ±× ½ÇÇà
ÇÔ¼ö¸¦ µî·ÏÇÕ´Ï´Ù.
ŸÀ̸ӵî·Ï ¸â¹ö ÇÔ¼ö | ±â´É |
addTimerProc() | ŸÀÌ¸Ó ±âµ¿µî·Ï ÇÔ¼ö |
delTimerProc() | ŸÀÌ¸Ó ±âµ¿ »èÁ¦ ÇÔ¼ö |
#include <WSDtimer.h>
// ŸÀ̸ӿ¡¼ ±âµ¿µÇ´Â ó¸® ÇÔ¼öÀÇ »ùÇÃ
void timerHandler(unsigned char clock,void* data){
//clock ´Â 250ms ¸¶´Ù ¿Ã¶ó°¡´Â Ä«¿îÆ®
//data ´Â ŸÀ̸ӵî·ÏÇÒ¶§ ¿Å°ÜÁø µ¥ÀÌÅÍ
//¿©±â¼ ŸÀÌ¸Ó Ã³¸®¸¦ ÇÑ´Ù...
}
void event_procedure(WSCbase* obj){
//¿©±â¼ ÁöÁ¤µÈ µ¥ÀÌÅÍ°¡ ŸÀÌ¸Ó Ã³¸® ÇÔ¼ö¿¡ ¿Å°ÜÁø´Ù.
void* data = (void*)1234;
//ÀÏÁ¤½Ã°£¸¶´Ù ±âµ¿µÇ´Â ŸÀÌ¸Ó ÇÔ¼öÀÇ µî·Ï //500ms ¸¶´ÙÀÇ ±âµ¿
long id = WSGIappTimer()->addTimerProc( timerHandler,WS500MS,data );
// ŸÀ̸Ӹ¦ µµÁß¿¡¼ ¸ØÃâ °æ¿ì´Â
WSGIappTimer()->delTimerProc( id );
}
timerHandler() ÇÔ¼ö¿¡´Â ŸÀ̸ӿ¡¼ ±âµ¿µÇ¿© ½ÇÇàÇÒ Ã³¸®¸¦ ¾¹´Ï´Ù
timerHahdler() ÇÔ¼ö¿¡ µ¥ÀÌÅ͸¦ ÁÙ°æ¿ì¿¡´Â addTimerProc() ÀÇ
Á¦3 Àμö¿¡ void* ·Î ³Ñ±é´Ï´Ù. addTimerProc() ÀÇ °á°úÄ¡´Â ŸÀÌ¸Ó Ã³¸®ÀÇ ID
°¡ µ¹¾Æ¿É´Ï´Ù. Ȥ½Ã ±× ŸÀÌ¸Ó Ã³¸®¸¦ ¸ØÃâ °æ¿ì¿¡´Â delTimerProc()
·Î ±× ID ¸¦ ÁöÁ¤ÇÕ´Ï´Ù.
¶ÇÇÑ À̺¥Æ® ÇÁ·Î½ÃÀúÀÇ °æ¿ì¿Í ´Þ¸® ŸÀÌ¸Ó Ã³¸® ÇÔ¼öÀÇ °æ¿ì¿¡´Â
°´Ã¼ÀÇ °»½Å 󸮰¡ ¾ÈºÒ¸®±â¶§¹®·¹ °´Ã¼ÀÇ ¼Ó¼ºÄ¡µîÀ»
º¯°æÇÑ °æ¿ì¿¡´Â update()¸¦ ºÒ·¯ ¹¦È °»½ÅÀ» ÇØÁÖ¼¼¿ä. ´õ±¸³ª ÁöÁ¤
ÇÒ¼öÀִ ŸÀ̸ÓÀÇ °£°ÝÀº WS250MS,WS500MS,WS750MS,WS1000MS,WS1250MS,...
µîÀÇ 250ms °£°ÝÀÇ °ªÀÔ´Ï´Ù.
// ŸÀ̸ӿ¡¼ ±âµ¿µÇ´Â ó¸® ÇÔ¼öÀÇ »ùÇÃ
void timerHandler(unsigned char clock,void* data){
WSCbase* object = (WSCbase*)data;
object->setProperty(WSNlabelString," ½Ã°£ÀÔ´Ï´Ù");
object->update(); // °´Ã¼ÀÇ ¹¦È °»½Å
}