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

📄 at.h

📁 中文短信的编解码
💻 H
字号:
#ifndef _AT_H_
 #define _AT_H_

#include <time.h>
#include "include/types.h"

typedef struct _AT_CMD {
	long	wait_sec;
	long	delay_usec;
	char *	at_str;
	int 	ret_type;
} AT_CMD;

enum _AT_RX_DEF {
	NUM_RX=10,
	WIDE_RX=512
};

typedef struct _AT_RX_BUF {
	unsigned int type;
	int len;
	char buf[WIDE_RX];
} AT_RX_BUF;

typedef struct _AT_MODEM {
	int fd_com;
	AT_RX_BUF rxbuf[NUM_RX];
	int rxhead;
	int rxtail;
	unsigned int status;
} AT_MODEM;

enum _AT_ATR_DEF{
	ATR_NULL	= 0x0000,
	ATR_OK		= 0x0001,
	ATR_ERROR	= 0x0002,
	ATR_RING	= 0x0004,
	ATR_NO_		= 0x0008,
	ATR_AT_		= 0x0010,
	ATR_BUSY	= 0x0020,
	ATR_RET		= 0x0040,
	ATR_CONNECT	= 0x0080,
	ATR_ERROR_	= 0x0100,
	ATR_UNKNOWN	= 0x1000,
	ATR_TIMEOUT	= 0x2000,
	ATR_ALL		= 0xFFFF
};

/*
 *	modem初始化函数
 *	输入与modem连接通信的端口描述符fd_com,
 *	初始化空间后输出相关的modem指针,返回NULL失败
*/
extern AT_MODEM * at_modem_init(int fd_com);

/*
 *	modem的at设置函数
 *	输入modem指针和at结构指针,
 *	返回处理中接收到的结果,见_AT_ATR_DEF定义
*/
extern int at_set(AT_MODEM * modem, AT_CMD * pack_at);

/*
 *	modem的at设置字符串发送函数,为at_set调用
 *	输入modem指针和at结构指针,
 *	返回OK,ERROR
*/
extern int at_write(AT_MODEM * modem, AT_CMD * pack_at);

/*
 *	modem的at设置字符串后,从缓冲接收数据处理函数,为at_set调用
 *	输入modem指针和at结构指针,
 *	返回处理中接收到的结果,见_AT_ATR_DEF定义
*/
extern int at_read(AT_MODEM * modem, AT_CMD * pack_at);

/*
 *	从最近at_read处理数据块中获取相关_AT_ATR_DEF定义类型type的数据块
 *	输入modem指针和_AT_ATR_DEF定义类型type,
 *	返回相应数据块的指针,以便进一步对数据细化处理
*/
extern AT_RX_BUF * at_get_rxbuf(AT_MODEM * modem,unsigned int type);

#if 0
/* 相关函数调用参考,请参考sms.c和sms.h */
#endif

#endif

⌨️ 快捷键说明

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