📄 at.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 + -