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

📄 atcmdparser.h

📁 C语言源代码及相关资料
💻 H
字号:

#define RCV_RP_MAX_CMD_LEN			16		// maximum command length (Response message address)
#define RCV_RP_MAX_DATA_LEN			1024	// maximum data length
#define RCV_RP_MAX_CTX_LEN			256	// maximum data length
//#define RCV_RP_MAX_MAXFIELD			512

// RCV_STATE
enum RCV_STATE {
	RCV_STATE_START = 0,	// Start State
	RCV_STATE_CMD,				// Get command
	RCV_STATE_RP_PLUS,		// Get Response '+' Data
	RCV_STATE_RP_OK,			// Get Response 'OK' Data
	RCV_STATE_RP_ERROR,		// Get Response 'ERROR' Data
	RCV_STATE_WAIT,				// Get '>' character and waiting to write some data to remote device
	RCV_STATE_READY,			// Get system Ready message when system start
	RCV_STATE_OTHERS			// Other unrecognizable statement
};

// RCV_STARP_START_P
enum RCV_STARP_START_P {
	RCV_STARP_START_P_0 = 0,
	RCV_STARP_START_P_1,
	RCV_STARP_START_P_2,
	RCV_STARP_START_P_3,
	RCV_STARP_START_P_4,
	RCV_STARP_START_P_5,
	RCV_STARP_START_P_6,
	RCV_STARP_START_P_7,
	RCV_STARP_START_P_8,
	RCV_STARP_START_P_9,
	RCV_STARP_START_P_10,
	RCV_STARP_START_P_11,
	RCV_STARP_START_P_12,
	RCV_STARP_START_P_13
};

// RCV_STARP_PLUS
enum RCV_STARP_PLUS {
	RCV_STARP_PLUS_SOM = 0,
	RCV_STARP_PLUS_CMD,
	RCV_STARP_PLUS_DATA,
	RCV_STARP_PLUS_DATA_FINAL,
	RCV_STARP_PLUS_DATA_OTHERS,
	RCV_STARP_PLUS_DATA_OTHERS_FINAL,
	RCV_STARP_PLUS_BACK_N_CHAR,
	RCV_STARP_PLUS_POM,
	RCV_STARP_PLUS_EOM
};

// RCV_STARP_RP_MS
enum RCV_STARP_RP_MS {
	RCV_STARP_RP_UNKNOW = 0,
	RCV_STARP_RP_READY,
	RCV_STARP_RP_OK,
	RCV_STARP_RP_ERROR,	
	RCV_STARP_RP_CLIP,
	RCV_STARP_RP_CPIN,
	RCV_STARP_RP_CSQ,
	RCV_STARP_RP_CMGF,
	RCV_STARP_RP_CMTI,
	RCV_STARP_RP_CMGR,
	RCV_STARP_RP_CMGL,
	RCV_STARP_RP_CMGS,
	RCV_STARP_RP_CMGS_SENDMODE,
	RCV_STARP_RP_AIPA,
	RCV_STARP_RP_AIPO,
	RCV_STARP_RP_AIPW,
	RCV_STARP_RP_AIPR,
	RCV_STARP_RP_AIPC,
	RCV_STARP_RP_AIPRTCP,
	RCV_STARP_RP_AIPRUDP,
	RCV_STARP_RP_AIPRIPI
};

// RCV_PARSER_MODE
enum RCV_PARSER_MODE {
	RCV_PARSER_MODE_DEFAULT = 0,
	RCV_PARSER_MODE_PLUS
};

struct agsm_rcv_trans_callback {
	unsigned char cATPLUS_Type;
	void *fun_ATPLUS_Callback;
};

typedef struct agsm_rcv_trans_callback AGSM_RCV_TRANS_CALLBACK_STRUCT;

struct agsm_rcv_transparas {
	unsigned char * pRcvUartBufData;
	unsigned short	shRcvUartBufLen;
	unsigned char 	cRepMode;
	unsigned short	shHasParsedUartBufIndex;	
	unsigned char 	cParsRspTypeStatus;
	unsigned short 	shBackNChar;
};

typedef struct agsm_rcv_transparas AGSM_RCV_TRABSPARAS_STRUCT;


#if defined(AMOD_ATCMD_PARSER_H)

unsigned char gw_nRCVState = RCV_STATE_START; // RCV_STATE
unsigned char gw_nRCVState_START = RCV_STARP_START_P_0; // RCV_STARP_START_P
unsigned char gw_nRCVState_RFPLUS = RCV_STARP_PLUS_SOM; // RCV_STARP_PLUS
unsigned char gw_nRCVState_RF_MS = RCV_STARP_RP_UNKNOW; // RCV_STARP_RP_MS

char gw_szRFPLUS_Command[RCV_RP_MAX_CMD_LEN+1];	// response message command
char gw_szRFPLUS_Data[RCV_RP_MAX_DATA_LEN+1];		// responsemessage data
int gw_rpplusms_Index = 0;	// reset index
char gw_szRFPLUS_CxtData[RCV_RP_MAX_CTX_LEN+1];	// responsemessage data for content, CMGR, CMGL, tec.
int gw_rppluctxsms_Index = 0;	// reset index
char gw_str_CmpEndString[RCV_RP_MAX_CMD_LEN+1];	// compare end string
int gw_cmpendstr_Index = 0; // reset index

AGSM_RCV_TRABSPARAS_STRUCT gw_funRCVATPLUS_Callback[256];

//char gw_szUartBuffer[512];

#else

extern unsigned char gw_nRCVState; // RCV_STATE
extern unsigned char gw_nRCVState_START; // RCV_STARP_START_P
extern unsigned char gw_nRCVState_RFPLUS; // RCV_STARP_PLUS
extern unsigned char gw_nRCVState_RF_MS; // RCV_STARP_RP_MS

extern char gw_szRFPLUS_Command[];	// response message command
extern char gw_szRFPLUS_Data[];		// responsemessage data
extern int gw_rpplusms_Index;	// reset index
extern char gw_szRFPLUS_CxtData[];	// responsemessage data for content, CMGR, CMGL, tec.
extern int gw_rppluctxsms_Index;	// reset index
extern char gw_str_CmpEndString[];	// compare end string
extern int gw_cmpendstr_Index; // reset index

extern AGSM_RCV_TRABSPARAS_STRUCT gw_funRCVATPLUS_Callback[];

extern short funPro_ParserRspMain( struct agsm_rcv_transparas* pInputParas);
extern void funProc_ParserRspInit(void);

//extern char gw_szUartBuffer[];

#endif // end of 

⌨️ 快捷键说明

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