亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lb_msg.c

?? 中國石油二期加油站IC系統后臺通訊軟件
?? 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-1 23:46:10  
***********************************************************************************************************
*/

/************ head file list *************/
/* header include files -- defines (.h) */
#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_err.h"
#include "lb_err.x"

/************* const define **************/

/******** import variable declare ********/

/******* gloable variable declare ********/

/*********** function declare ************/

/********** function prototype ***********/
S16 lbProcRqstStatAck(EquCfgEntry_s * equ, TranCb_s * tran, RqstStatAck_s * ack)
{
	
	if(ack->ackCode != 'A')
	{

		printf("error: receive invalide ack code\n");
		RETVALUE(RFAILED);
	}

	if(ack->errStat != 0)
	{
		lbErrProc(equ, ack->errStat);
		RETVALUE(ROK);
	}

	equ->cfmStat = ROK;
	equ->cmdProcErrCode = 0;
	/* 
	 * 1:
	 * when gun up I need to send gunup info 
	 * and get card info to console, 
	 * authrize start
	 * 2:  
	 * when gun down I only need to send gundown auth 
	 * and if card not in station rqst card info
	 * else only send gundown 
	 */
	lbUpdateGunStat(equ, ack->hdr.sideId, ack);
	/* 
	 * when gunup find card handle must be ignore
	 */
	lbScRqstProc(equ, ack->rqstFlag);


	RETVALUE(ROK);
}
S16 lbProcCmdRqstAck(ScCommCb_s * scCommCb, CommonAck_s * ack)
{
	TranCb_s * tran = NULLP;
	CmdMsg_s * cmdNode;
	EquCfgEntry_s * equ;
	S16 ret;

	if(scCommCb == NULLP)
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}
	equ = scCommCb->equ;

	if (ROK != findFirstCmdNodeByChannel(equ->entry.channelId, &cmdNode))
	{
//		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}

	if(cmdNode->dir == IND_DIR)
	{
		printf("error: dir error\n");
		RETVALUE(RFAILED);
	}
	if(cmdNode->msgCode != ack->cmdCode)
	{
		rxLog("recv stale packet");
		RETVALUE(RFAILED);
	}


	switch(cmdNode->msgCode)
	{
	case 0xa0:

		lbProcRqstStatAck(equ, tran, (RqstStatAck_s *)ack);
		ret = ROK;
		break;
		

	case 0xa1: /* read totle */
		LBLOG("讀累計回應", ack, ack->hdr.dataLen + 5); 
        ret = lbRecvReadTotleAck(equ, tran, (ReadTotleAck_s *)ack);
		break;
	case 0xa4:

		switch(cmdNode->action)
		{
		case 0x01:
			LBLOG("讀員工卡回應", ack, ack->hdr.dataLen + 5); 
			ret = lbRecvReadWorkerCardAsnAck(equ, tran, (ReadCardAsnAck_s *)ack);
			break;
		case 0x00:
			LBLOG("讀加油卡回應", ack, ack->hdr.dataLen + 5); 
			ret = lbRecvReadFillCardAsnAck(equ, tran, (ReadCardAsnAck_s *)ack);
			break;
		case 0x02:
			LBLOG("讀黑卡回應", ack, ack->hdr.dataLen + 5); 
			ret = lbRecvReadBlkCardAsnAck(equ, tran, (ReadCardAsnAck_s *)ack);
			break;
		}

	break;
	case 0xa5:
		LBLOG("讀卡狀態回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvReadCardInfoAck(equ, tran, (ReadCardInfoAck_s *)ack);
		break;

	case 0xb0:
		LBLOG("設聯網回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvSetNetModeAck(equ, tran, (CommonAck_s *)ack, cmdNode);
		break;

    case 0xb2:
		LBLOG("授權回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvAuthAck(equ, tran, (CommonAck_s *)ack);
		break;
	case 0xb3:
		LBLOG("結束加油回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvFinishFillAck(equ, tran, (CommonAck_s *)ack);

		break;
	case 0xb4:
		LBLOG("關班回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvCloseDuringAck(equ, tran, (CommonAck_s *)ack);

		break;
	case 0xc0:
		LBLOG("讀單價回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvGetCrrntPriceAck(equ, tran, (ReadCrrntPriceAck_s *)ack);
		break;

	case 0xc1:
		LBLOG("寫單價回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvWriteBackupPriceAck(equ, tran, (CommonAck_s *)ack);
		break;
	case 0xc4:
		LBLOG("讀油品回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvReadOilTypeAck(equ, tran, (ReadOilTypeAck_s *)ack);
		break;
	case 0xc5:
		LBLOG("寫油品回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvWriteOilTypeAck(equ,tran, (CommonAck_s *)ack);
		break;
	case 0xd0:
		LBLOG("執行情況回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvCmdCfmAck(equ,tran , (CommonAck_s *)ack, cmdNode);
		break;

	case 0xd1:
		LBLOG("寫配置回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvSysCfgAck(equ, tran, (CommonAck_s *)ack, cmdNode);
		break;
	case 0xdb:
		LBLOG("下黑名單回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvBlkListAck(equ,tran, (CommonAck_s *)ack, cmdNode);
		break;
	case 0xd3:
		LBLOG("下24小時灰回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvSendGreyAck(equ, tran, (CommonAck_s *)ack, cmdNode);
		break;

	case 0xd4:
		LBLOG("下定點回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvSpecCodeAck(equ, tran , (CommonAck_s *)ack, cmdNode);
		break;
	case 0xd5:
		LBLOG("解灰回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvWriteGreyAck(equ, tran , (CommonAck_s *)ack, cmdNode);
		break;
	case 0xd6:
		LBLOG("上傳記錄", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvGetRecAck(equ, tran, (GetRecAck_s *)ack, cmdNode);
		break;
	case 0xd7:
		LBLOG("上傳灰記錄", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvGetGreyAck(equ, tran, (GetGreyAck_s*)ack, cmdNode);
		break;
	case 0xd8:
		LBLOG("校準時間回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvSetTimeAck(equ, tran , (CommonAck_s *)ack, cmdNode);
		break;
	case 0xda:
		LBLOG("取歷史記錄", ack, ack->hdr.dataLen + 5); 
		lbRecvGetHistroyAck(equ, tran, (GetHistoryAck_s *) ack, cmdNode);
		RETVALUE(ROK);
	case 0xd2:
//		LBLOG("下黑名單回應", ack, ack->hdr.dataLen + 5); 
		ret = lbRecvBlkListAck(equ,tran, (CommonAck_s *)ack, cmdNode);
		break;
	}

	if(ret == ROK)
	{
		lbCmDestroyCmdNode(cmdNode);
	}
	RETVALUE(ROK);

}

S16 lbParseRecvMsg(ScCommCb_s * scCommCb, Data * buf, MsgLen len)
{
	Data * temp = buf, *ack;
	MsgLen ackLen, msgLen = len;

	if(buf == NULLP || len == 0)
	{
		RXLOGERROR(ENTSC, 0, buf, "Error: invalide parameters");
		RETVALUE(RFAILED);
	}

	while(msgLen)
	{
		MsgHdr_s * ackHdr;
		segScMsg(temp, msgLen, &ack, &ackLen);

		#ifdef LO_DEBUG
//		lbCmPrntBuf("recv msg:", (Data *)ack, ackLen);
		#endif

		if(ack == NULLP)
		{
			RETVALUE(ROK);
		}
		msgLen -= ackLen;
		temp = &ack[ackLen];
		if(ackLen < sizeof(MsgHdr_s))
		{
			RETVALUE(ROK);
		}
		ackHdr = (MsgHdr_s *)ack;

		if (ackHdr->dataLen + 5 != ackLen)
		{
			printf("Recv msg error\n");
			RETVALUE(ROK);
		}

		if (ROK != lbChkCrc((Data *)ackHdr, ackLen))
		{
			printf("Recv msg CRC error\n");
			continue;
		}

		if(ackHdr->sideId != scCommCb->equ->entry.sideId)
		{
			printf("error: receive invalide side id\n");
			continue;
		}

		

		lbProcCmdRqstAck(scCommCb, (CommonAck_s *)ackHdr);
		RETVALUE(ROK);

	}

	RETVALUE(ROK);
}




/* modify by shang 2002-7-12 6:06:15 */
#if 0 /* last code */
S16 lbBuildRqstStat(ScCommCb_s * scCommCb, Buffer ** ret_msg)
{
	Buffer * msg;
	MsgA_s rqstStatMsg;

	if(scCommCb == NULLP)
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}
	if(ROK != SGetMsg(0, 0, &msg))
	{
		RXLOGERROR(0, 0, 0, "ERROR");
		RETVALUE(RFAILED);
	}
	rqstStatMsg.hdr.frameStart = 0x55aa;
	rqstStatMsg.hdr.dataLen = 2;

	rqstStatMsg.hdr.sideId = (scCommCb->crrntSide++)&(rxCb.machTbl[scCommCb->machId].sideNum-1);


	rqstStatMsg.cmd = RQST_STAT;


	SAddPstMsgMult((Data *)&rqstStatMsg, (MsgLen)(rqstStatMsg.hdr.dataLen + 3), msg);
	*ret_msg = msg;

	RETVALUE(ROK);
}

#else /* new code */

#endif /* end modify */
/* modify by shang is over 2002-7-12 6:06:15*/





/******************* modify histroy list *******************
001. create at: 2002-7-1 23:46:10 by Shangyaohui

****************** modify histroy list end ****************/


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本一本大道香蕉久在线精品| 一区二区三区在线视频免费观看| 精品一区二区三区的国产在线播放| 欧美三级在线播放| 日韩精品亚洲一区二区三区免费| 欧美日韩国产大片| 蜜桃视频在线一区| 久久亚区不卡日本| 91在线精品一区二区三区| 亚洲欧美日韩人成在线播放| 欧美影院午夜播放| 人人精品人人爱| 久久亚洲影视婷婷| 99精品国产91久久久久久| 亚洲精选视频免费看| 欧美日韩国产成人在线91| 裸体健美xxxx欧美裸体表演| 久久久久国产精品人| 99久久国产综合色|国产精品| 亚洲一区中文在线| 欧美一区二区播放| 成人毛片老司机大片| 一二三四区精品视频| 欧美一级在线观看| 成人sese在线| 青青草精品视频| 国产免费久久精品| 亚洲精品一区二区三区精华液| 欧美精品日日鲁夜夜添| 亚洲人成精品久久久久| 色视频成人在线观看免| 奇米影视一区二区三区小说| 国产视频一区二区在线| 色8久久人人97超碰香蕉987| 日本不卡高清视频| 亚洲欧美日韩国产成人精品影院| 欧美精品123区| 99久久婷婷国产综合精品| 污片在线观看一区二区| 中文字幕va一区二区三区| 欧美亚洲国产一区二区三区 | 色妹子一区二区| 日本视频中文字幕一区二区三区| 欧美激情一区不卡| 欧美一区二区三区在线看| 成人黄色免费短视频| 美女视频黄久久| 亚洲动漫第一页| 日韩亚洲国产中文字幕欧美| 麻豆91在线播放| 亚洲一区二区三区中文字幕| 久久综合狠狠综合| 欧美色综合天天久久综合精品| 精品一区二区三区日韩| 亚洲综合在线免费观看| 亚洲国产精品ⅴa在线观看| 欧美一级电影网站| 欧美日韩在线播放三区| 91麻豆精东视频| 国产+成+人+亚洲欧洲自线| 精品在线观看视频| 午夜精品久久一牛影视| 亚洲天堂av一区| 亚洲国产精品ⅴa在线观看| 欧美精品一区二区久久婷婷| 91精品国产综合久久精品图片| 色8久久人人97超碰香蕉987| 北条麻妃国产九九精品视频| 国产成人高清视频| 国产美女久久久久| 国内精品视频一区二区三区八戒 | av激情亚洲男人天堂| 国产欧美日韩视频一区二区 | 日韩激情av在线| 亚洲美女免费视频| 成人免费视频在线观看| 国产精品久久二区二区| 国产欧美一区二区三区网站| 久久久久99精品国产片| 久久久精品2019中文字幕之3| 日韩欧美在线网站| 精品美女被调教视频大全网站| 欧美一二三区在线| 精品国产一区二区三区不卡| 日韩小视频在线观看专区| 91精品国产91综合久久蜜臀| 日韩欧美视频在线| 欧美一级免费大片| 欧美不卡视频一区| 久久久亚洲国产美女国产盗摄 | 欧美日韩不卡视频| 国产精品白丝jk白祙喷水网站| 欧美视频第二页| 欧美日韩一二三区| 欧美一区二区人人喊爽| 久久综合色之久久综合| 国产午夜精品一区二区三区嫩草 | 粉嫩在线一区二区三区视频| 国产成a人无v码亚洲福利| 成人深夜福利app| 91欧美一区二区| 欧美色综合天天久久综合精品| 欧美精品久久久久久久多人混战 | 国产精品白丝jk黑袜喷水| 成人黄色电影在线| 在线亚洲欧美专区二区| 91精品国产色综合久久| 精品三级av在线| 国产精品电影一区二区三区| 一区二区久久久久久| 精品一区二区三区日韩| 99久久精品久久久久久清纯| 欧美日韩一本到| 国产亚洲欧美色| 一区二区三区欧美视频| 麻豆精品久久久| 99精品欧美一区二区蜜桃免费| 欧美性极品少妇| 久久久久久久久免费| 亚洲精品亚洲人成人网在线播放| 美国三级日本三级久久99| 波多野结衣一区二区三区 | 8x福利精品第一导航| 久久网站最新地址| 亚洲午夜激情av| 国产精品77777竹菊影视小说| 在线视频你懂得一区二区三区| 日韩美一区二区三区| 亚洲激情在线激情| 国产精品99久久久久久久女警| 欧美日韩亚洲不卡| 国产精品美女久久久久高潮| 视频一区中文字幕| 91网站在线观看视频| 精品久久一区二区三区| 亚洲一级二级三级| 成人黄色综合网站| 久久久久久一二三区| 亚洲va欧美va天堂v国产综合| 国产精选一区二区三区| 欧美久久一二三四区| 最近日韩中文字幕| 国产成人三级在线观看| 日韩一区二区三区av| 玉足女爽爽91| 成人黄色电影在线| 国产婷婷色一区二区三区| 日韩福利电影在线观看| 91高清视频在线| 中文字幕中文乱码欧美一区二区 | 国产乱码精品一区二区三区忘忧草| 欧美亚洲一区二区三区四区| 自拍偷拍国产亚洲| 国产91精品久久久久久久网曝门 | 91精品国产综合久久久久久久久久| 中文字幕一区二区三区精华液 | 99视频在线精品| 国产人成亚洲第一网站在线播放| 麻豆国产一区二区| 在线播放日韩导航| 亚洲h精品动漫在线观看| 99国产精品国产精品毛片| 国产精品网站在线播放| 国产一区视频在线看| 欧美成人一区二区三区片免费 | 综合网在线视频| 国产成人精品影视| 国产无一区二区| 国产精品亚洲综合一区在线观看| 精品国产三级电影在线观看| 六月丁香综合在线视频| 欧美成人aa大片| 国产精品中文字幕日韩精品| 精品国产91久久久久久久妲己| 蜜臀a∨国产成人精品| 亚洲精品一区二区三区在线观看| 看电视剧不卡顿的网站| 26uuu精品一区二区在线观看| 麻豆精品国产91久久久久久| 精品国产伦一区二区三区观看体验 | 久久久久久99精品| 国产不卡视频一区| 亚洲乱码精品一二三四区日韩在线| 95精品视频在线| 亚洲在线免费播放| 91精品国产色综合久久不卡蜜臀 | 日韩视频在线永久播放| 久久99精品一区二区三区| 精品盗摄一区二区三区| 国产一区二区精品久久| 欧美激情自拍偷拍| 91色|porny| 蜜桃久久精品一区二区| 久久精品欧美一区二区三区麻豆| 波多野结衣欧美| 亚洲第一综合色| 久久久国产精品午夜一区ai换脸| 99热精品一区二区| 亚洲va韩国va欧美va精品| 日韩精品中文字幕在线一区|