⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rx.h

📁 中国石油二期加油站IC系统后台通讯软件
💻 H
字号:
/*
***********************************************************************************************************
                                                      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-6-28 4:03:35  
***********************************************************************************************************
*/

#ifndef __RX_H__
#define __RX_H__

#ifdef __cplusplus
extern "C" {
#endif
	#include "cm_hash.h"
/**** const define ****/



	#define CFG_MACH_NUM 		1
	
	#define IDLE				0
	#define FILLING				1


	#define GUN_DOWN    		0
	#define GUN_UP_AND_FILLING	1
	#define GUN_UP_AND_WAIT_AUTH	2
	#define GUN_DOWN_AND_WAIT_AUTH	4
	
	#define NO_ACTIVE				10
	
	#define WAIT_FILL				5
	

	#define ND_CONFIG_RQ_F			0x01
	#define ND_DLD_RQ_F				0x02
	#define ND_DBLK_RQ_F			0x04
	#define ND_LOADGREY_RQ_F		0x08
	#define ND_BLK_RQ_F				0x10
	#define ND_GREY_RQ_F			0x20
	#define SENDRECORD_RQ_F			0x40
	#define SENDLOADGREY_RQ_F		0x80
	

	#define ONLY_CARD_NO			0
	#define PARTVALUE_VALID			1
	#define ALL_VALID				2
	
	#define WORK_ON_RQST			1
	#define WORK_OUT_RQST			2
	
	#define BLK_CARD_RQST			3				
	#define REL_GREY_RQST			4
	#define IND_REC_RQST			5
	#define LOAD_GREY_RQST			6

	#define NO_WORKER				0
	#define THEREIS_WORKER			1
	#define REQ_ONWORK				2
	#define REQ_OUTWORK				3
	#define NEW_ON_WORK				4
	

	#define IND_TMR					11
	#define RQST_TMR				12
	#define QUERY_TMR				13
	
	#define START_TMR				1
	#define STOP_TMR				2
	


	#define IND_DIR					1
	#define RQST_DIR				2
	#define CMD_DIR					3


	#define IND_GUN_UP				0x01
	#define IND_GUN_DOWN			0x02
	#define IND_WORK_ON				0x03
	#define IND_CARD_INS			0x04
	#define IND_CARD_OUT			0x05
	#define IND_CARD_INFO			0x06
	#define IND_UPLOAD_RECORD		0x08
	#define URQST_BLACK_LIST		0x09
	#define IND_VOLUME				0x0a
	#define IND_WORK_OUT			0x0b
	#define URQST_GET_STATION_CODE	0x0c
	#define URQST_GET_EQP_INFO		0x0d
	#define URQST_GET_SPECIAL_CODE	0x0e
	#define URQST_GET_HISTORY		0x0f
	#define URQST_SET_KEY_VER		0x10
	#define URQST_GIVE_KEYINFO		0x11
	#define URQST_ENABLE_IBANK_APP	0x12
	#define URQST_GIVE_IBANK_CODE	0x14
	#define URQST_SET_KEY_INDEX		0x15
	#define URQST_ENABLE_PONEYCARD	0x16
	#define URQST_GET_TOTLE			0x17
	#define URQST_UPDATE_PRICE		0x18
	#define UQST_GET_CRRNT_PRICE	0x19
	#define URQST_UPDATE_DENSITY	0x1a
	

	#define URQST_PAUSE_FILL		0x1c
	#define URQST_RESUME_FILL		0x1d
	
	#define URQST_GREY_UPDATE		0x1e
	#define URQST_BLACK_UPDATE		0x1f
	


	#define QUERY_TMR_INTERVAL		20
	

	#define RDY_SEND				0
	#define HAVE_SEND				1
	#define HAVE_ACK_W				2
	

	#define IND_TMR_EXPIRE			500
	

	#define CMD_RETRY_TIMES			20
	#define CMD_RETRY_TIMEOUT		5
	#define BLKRETRY_TIMER			4
	
#define LB_TMR_LEN					4

	#define PRICE_FILE_NAME			"d:/price.bin"
	#define OILTYPE_NUM				10

/**** macro handle define ****/
#define RXLOGERROR(_ent, _inst, _val, _desc) \
do \
{ \
	SLogError((Ent)(_ent), (Inst)(_inst), (ProcId)SFndProcId(), \
			  (Txt *)(__FILE__), (S32)(__LINE__), \
			  (ErrCls)ERRCLS_DEBUG, (ErrCode)255, \
			  (ErrVal)(_val), (Txt *)(_desc)); \
} while(0)

#define RXPSTINIT(_pst, _srcent, _srcinst, _dstent, _dstinst) \
{															  \
	_pst.srcEnt = _srcent;									  \
	_pst.srcInst = _srcinst;								  \
	_pst.dstEnt = _dstent;									  \
	_pst.dstInst = _dstinst;								  \
    _pst.srcProcId = SFndProcId();							  \
	_pst.dstProcId = SFndProcId();							  \
    _pst.region = 0;										  \
	_pst.pool = 0;											  \
	_pst.route = 0;											  \
	_pst.prior = PRIOR0;									  \
	_pst.selector = 0;										  \
}

#define LBGETTRAN(_entry, _equ, _tran)					  \
{															  \
	if(NULLP == ((_tran) = lbCmGetTran(_entry, _equ)))  	  \
	{														  \
		RXLOGERROR(0, 0, 0, "error");						  \
		RETVALUE(RFAILED);									  \
	}														  \
}

#define FIELD_INDEX(_str, _mem, _index)                   \
{														  \
	_str _temp;											  \
	_index = (U32)((U8 *)(&(_temp._mem)) - (U8 *)(&_temp));	  \
}
#define GETFIRSTRQSTENTRY(_rqst)                          \
{ 														  \
	_rqst = (RxCmdEntry_s *)cmLListFirst(&rxCb.rqstList); \
	if(NULLP == _rqst)									  \
	{													  \
		RETVALUE(RFAILED);								  \
	}													  \
}

#define GETFIRSTTRAN(_tran)                               \
{														  \
	RxCmdEntry_s * _entry;    							  \
	GETFIRSTRQSTENTRY(_entry);                             \
	_tran = (TranCb_s *)cmLListFirst(&_entry->tranList);   \
	if(NULLP == _tran)									  \
	{													  \
		RETVALUE(RFAILED);								  \
	}													  \
}



#define LBGETCMDENTRY(_rqstId, _type, _entry)             \
{														  \
	if (ROK != lbCmGetCmdEntry(_rqstId, _type, &_entry))   \
	{													  \
		RXLOGERROR(0, 0, 0, "ERROR");					  \
		RETVALUE(RFAILED);								  \
	}													  \
}

#define LBGETCMDENTRYLEN() (cmLListLen(&rxCb.rqstList))


#define CHKHANDLESTAT(_cmd) 						\
{													\
	if ((_cmd->tran->entry->errCode&0x0f) != 0x00)	\
	{												\
		buf[1] = _cmd->tran->entry->errCode;			\
		len = 2;									\
		lbCmDestroyCmdNode(_cmd);                   \
		break;										\
	}												\
	if(_cmd->alRqstCfmType == 0)						\
	{												\
		buf[1] = 0;									\
		len = 2;									\
		lbCmDestroyCmdNode(_cmd);                   \
		break;										\
	}												\
}

#define LBCMATOHEX(_s, _byteIdx, _highIdx) (lbCmAsc2Int(_s[_byteIdx]) * (0x01 << (4 * _highIdx)))



#define UP_DATA(_data, _len, _buf)							\
{													\
	LBLOG("上传消息<----", _buf, _len);					\
	UpData(_data, _len, _buf);                                \
}


/**** type define ****/

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

/**** export variable ****/

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

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

#ifdef __cplusplus
}
#endif

#endif /* head file is over */

/******************* modify histroy list *******************
001. create at: 2002-6-28 4:03:36 by Shangyaohui

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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -