📄 lb_tmr.c
字号:
/*
***********************************************************************************************************
Amos
The Real_Time Operation System
Multi Task
(c) Copyright 1998-2002, ShangYaoHui, Shenzhen
All Right Reserved
VERSION 6.01
" By : 商耀挥(ShangYaoHui)
create time: 2002-7-6 16:45:02
***********************************************************************************************************
*/
/************ head file list *************/
#include "envopt.h" /* environment options */
#include "envdep.h" /* environment dependent */
#include "envind.h" /* environment independent */
#include "gen.h" /* general */
#include "cm5.h" /* common functions */
#include "ssi.h" /* system services */
/* header/extern include files (.x) */
#include "gen.x" /* general */
#include "cm5.x" /* common functions */
#include "ssi.x" /* system services */
#include "cm_llist.h"
#include "cm_llist.x"
#ifdef WIN32
#include "winbase.h"
#endif
#include "rx.h"
#include "rx.x"
#include "rx_msg.h"
#include "rx_msg.x"
#include "lb_cm.h"
#include "lb_cm.x"
#include "lb_recv.h"
#include "lb_recv.x"
#include "lb_xmit.h"
#include "lb_xmit.x"
#include "lb_msg.h"
#include "lb_msg.x"
#include "lb_bdy1.h"
#include "lb_bdy1.x"
#include "lb_bdy2.h"
#include "lb_bdy2.x"
#include "lb_bdy4.h"
#include "lb_bdy3.h"
#include "lb_bdy3.x"
#include "lb_bdy4.h"
#include "lb_bdy4.h"
#include "lb_bdy4.x"
#include "lb_bdy5.h"
#include "lb_bdy5.x"
#include "lb_bdy6.h"
#include "lb_bdy6.x"
/************* const define **************/
/******** import variable declare ********/
/******* gloable variable declare ********/
LbTmrCb_s lbTmrCb;
/*********** function declare ************/
/********** function prototype ***********/
S16 lbTmrInit(void)
{
U32 i;
lbTmrCb.tqCp.nxtEnt = 0;
lbTmrCb.tqCp.tmrLen = LB_TMR_LEN;
for(i = 0; i < LB_TMR_LEN; i++)
{
lbTmrCb.tqType[i].first = lbTmrCb.tqType[i].tail = NULLP;
}
RETVALUE(ROK);
}
S16 lbTmrProc(void * cp, S16 evnt)
{
LbTmrEntry_s * tmr;
if(cp == NULLP)
{
RXLOGERROR(0, 0, 0, "ERROR");
RETVALUE(RFAILED);
}
tmr = (LbTmrEntry_s *)cp;
switch(evnt)
{
case IND_TMR:
lbIndRetxTmr(tmr->machId);
break;
case RQST_TMR:
lbRqstRetxTmr(tmr->machId);
break;
case QUERY_TMR:
lbQueryTmr(tmr->machId);
break;
}
RETVALUE(ROK);
}
S16 lbSchdTmr(U32 tmrValue, S16 tmrType, S16 event)
{
CmTmrArg arg;
switch(event)
{
case START_TMR:
if(tmrType == TMR_NONE)
{
RXLOGERROR(0, 0, 0, "ERROR");
RETVALUE(RFAILED);
}
switch(tmrType)
{
case IND_TMR:
arg.timers = &rxCb.indTmr.tmr;
arg.cb = (PTR)&rxCb.indTmr;
if(rxCb.indTmr.tmr.tmrEvnt != TMR_NONE)
{
RXLOGERROR(0, 0, 0, "ERROR");
RETVALUE(RFAILED);
}
break;
case RQST_TMR:
arg.timers = &rxCb.rqstTmr.tmr;
arg.cb = (PTR)&rxCb.rqstTmr;
if(rxCb.rqstTmr.tmr.tmrEvnt != TMR_NONE)
{
RXLOGERROR(0, 0, 0, "ERROR");
RETVALUE(RFAILED);
}
break;
case QUERY_TMR:
arg.timers = &rxCb.queryTmr.tmr;
arg.cb = (PTR)&rxCb.queryTmr;
if(rxCb.queryTmr.tmr.tmrEvnt != TMR_NONE)
{
RXLOGERROR(0, 0, 0, "ERROR");
RETVALUE(RFAILED);
}
break;
}
arg.evnt = tmrType;
arg.wait = tmrValue;
arg.tqCp = &lbTmrCb.tqCp;
arg.tq = lbTmrCb.tqType;
arg.max = 1;
arg.tNum = NOTUSED;
cmPlcCbTq(&arg);
break;
case STOP_TMR:
if(tmrType == TMR_NONE)
{
RETVALUE(ROK);
}
if(tmrType == IND_TMR)
{
arg.timers = &rxCb.indTmr.tmr;
arg.cb = (PTR)&rxCb.indTmr;
}
else
{
arg.timers = &rxCb.rqstTmr.tmr;
arg.cb = (PTR)&rxCb.rqstTmr;
}
arg.evnt = tmrType;
arg.tq = lbTmrCb.tqType;
arg.tqCp = &lbTmrCb.tqCp;
arg.wait = 0;
arg.tNum = NOTUSED;
arg.max = 1;
cmRmvCbTq(&arg);
break;
}
RETVALUE(ROK);
}
U32 tmr_debug = 0;
S16 lbTmrHandle(void)
{
if(!tmr_debug )
{
cmPrcTmr(&(lbTmrCb.tqCp), lbTmrCb.tqType, (PFV)lbTmrProc);
}
RETVALUE(ROK);
}
/******************* modify histroy list *******************
001. create at: 2002-7-6 16:45:02 by Shangyaohui
****************** modify histroy list end ****************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -