?? lb_bdy2.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-4 21:53:01
***********************************************************************************************************
*/
/************ 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"
#include "winsock2.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"
/************* const define **************/
/******** import variable declare ********/
/******* gloable variable declare ********/
/*********** function declare ************/
/********** function prototype ***********/
S16 lbUpdateGunStat(EquCfgEntry_s * equ, U8 sideId, RqstStatAck_s * ack)
{
TranCb_s * tran;
RxCmdEntry_s * entry;
if(equ->entry.pGunId != ack->crrntGunId)
{
printf("error: gunId\n");
RETVALUE(RFAILED);
}
equ->stat = ack->stat;
if(equ->stat == GUN_DOWN && equ->lastStat == GUN_DOWN)
{
if(!ack->cardNotInSta && equ->cardInStat == FALSE )
{
switch(ack->cardStat)
{
case ONLY_CARD_NO:
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardASN(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardInMsg(equ, tran);
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardInfo(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardInfoMsg(equ, tran, NULLP);
break;
case PARTVALUE_VALID:
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardASN(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardInMsg(equ, tran);
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardInfo(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardInfoMsg(equ, tran, NULLP);
break;
case ALL_VALID:
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardASN(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardInMsg(equ, tran);
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardInfo(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardInfoMsg(equ, tran, NULLP);
break;
}
equ->cardInStat = TRUE;
}
else if(ack->cardNotInSta && equ->cardInStat == TRUE)
{
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardInfo(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardOutMsg(equ, tran);
equ->cardInStat = FALSE;
memset(equ->crrntCardNo, 0xff, 10);
}
switch(ack->workstationStat)
{
case NO_WORKER:
break ;
case THEREIS_WORKER:
break;
case REQ_ONWORK:
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardASN(equ, tran, 1);
lbBuildGetTotleVolume(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndWorkOnMsg(equ, tran);
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildCfm(equ, tran, WORK_ON_RQST, NULLP);
break;
case REQ_OUTWORK:
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardASN(equ ,tran, 1);
lbBuildGetTotleVolume(equ, tran, NULLP);
lbBuildCloseDuring(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndWorkOutMsg(equ, tran );
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildCfm(equ, tran, WORK_OUT_RQST, NULLP);
break;
case NEW_ON_WORK:
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetTotleVolume(equ, tran, NULLP);
lbBuildCloseDuring(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndWorkOutMsg(equ, tran);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndWorkOnMsg(equ, tran);
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildCfm(equ, tran, WORK_ON_RQST, NULLP);
break;
}
}
else if(equ->stat == GUN_UP_AND_WAIT_AUTH && equ->lastStat == GUN_DOWN)
{
if(ack->cardNotInSta)
{
printf("no card in station\n");
RETVALUE(RFAILED);
}
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndGunUpMsg(equ, tran);
if(!ack->cardNotInSta && equ->cardInStat == FALSE)
{
switch(ack->cardStat)
{
case ONLY_CARD_NO:
case PARTVALUE_VALID:
case ALL_VALID:
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardASN(equ, tran, 0);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardInMsg(equ, tran);
break;
}
equ->cardInStat = TRUE;
}
equ->stat = GUN_UP_AND_WAIT_AUTH;
equ->crrntVolume = 0;
equ->crrntAcount = 0;
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardInfo(equ, tran, NULLP);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardInfoMsg(equ, tran, NULLP);
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildAuthStart(equ, tran);
}
else if((equ->stat == GUN_UP_AND_FILLING && equ->lastStat == GUN_UP_AND_WAIT_AUTH)
|| (equ->stat == GUN_UP_AND_FILLING && equ->lastStat == GUN_UP_AND_FILLING))
{
equ->crrntVolume = ntohl(ack->volume);
equ->crrntAcount =ntohl(ack->account);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndUpdateTrans(equ, tran,
ack->account,
ack->volume);
}
else if((equ->stat == GUN_DOWN_AND_WAIT_AUTH && equ->lastStat == GUN_UP_AND_FILLING)
|| (equ->stat == GUN_DOWN_AND_WAIT_AUTH && equ->lastStat == GUN_DOWN)
|| (equ->stat == GUN_DOWN_AND_WAIT_AUTH && equ->lastStat == GUN_DOWN_AND_WAIT_AUTH))
{
equ->crrntVolume = ntohl(ack->volume);
equ->crrntAcount =ntohl(ack->account);
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndUpdateTrans(equ, tran,
ack->account,
ack->volume);
lbIndGunDownMsg(equ, tran);
if(ack->cardNotInSta && equ->cardInStat == TRUE)
{
/* stop auth will be send when card ballance have get */
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildGetCardInfo(equ, tran, NULLP );
LBGETCMDENTRY(0, IND_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbIndCardOutMsg(equ,tran );
equ->cardInStat = FALSE;
}
LBGETCMDENTRY(0, CMD_DIR, entry);
LBGETTRAN(entry, equ, tran);
lbBuildAuthStop(equ, tran);
}
equ->lastStat = equ->stat;
RETVALUE(ROK);
}
Bool rqstDebug = TRUE;
S16 lbScRqstProc(EquCfgEntry_s * equ, U8 rqstFlag)
{
if(!rqstFlag)
{
RETVALUE(ROK);
}
if (rqstDebug == TRUE)
{
if(rqstFlag & ND_CONFIG_RQ_F)
{
lbBuildLoadCfg(equ);
}
if(rqstFlag & ND_DLD_RQ_F)
{
lbBuildLoadDLD(equ);
}
if(rqstFlag & ND_DBLK_RQ_F)
{
lbBuildLoadBlklist(equ);
}
if(rqstFlag & SENDLOADGREY_RQ_F)
{
lbBuildLoadOwnGrey(equ);
}
if(rqstFlag & ND_BLK_RQ_F)
{
ldBuildFindBlklist(equ);
}
if(rqstFlag & ND_GREY_RQ_F)
{
lbBuildFindOtherGrey(equ);
}
if(rqstFlag & SENDRECORD_RQ_F)
{
lbBuildSendRecordRqst(equ);
}
}
RETVALUE(ROK);
}
/******************* modify histroy list *******************
001. create at: 2002-7-4 21:53:01 by Shangyaohui
****************** modify histroy list end ****************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -