客制化AT 开发指导_Rev1.2
修订记录
版本 |
日期 |
作者 |
审核 |
修订内容 |
|---|---|---|---|---|
Rev1.0 |
2023-09-11 |
lxh |
zlc |
创建文档 |
Rev1.1 |
2024-03-25 |
sxx |
更改文档名称 |
|
Rev1.2 |
2024-10-25 |
LJZ |
修改文档格式 |
1 简介
本文档介绍 LTE-EC71X OpenCPU如何添加自定义AT指令的功能。
2 API 函数概览
函数 |
说明 |
|---|---|
|
该函数用于AT功能的打开。 |
|
该函数用于注册AT table表。 |
|
该指接口为AT的返回函数 |
3 类型说明
3.1 liot_atCmdType_t
AT指令类型。
声明
typedef enum
{
LIOT_AT_CMD_SET = NA | EQ | AR,
LIOT_AT_CMD_TEST = NA | EQ | QU,
LIOT_AT_CMD_READ = NA | QU,
LIOT_AT_CMD_EXE = NA
} liot_atCmdType_t;
参数
LIOT_AT_CMD_SET :AT指令的设置。
LIOT_AT_CMD_TEST :AT指令的示例。
LIOT_AT_CMD_READ :AT指令的读取。
LIOT_AT_CMD_EXE :AT指令的执行。
以下这段文字
3.2 liot_atcmd_basic_type_e
AT指令的基本索引类型:
声明
typedef enum
{
LIOT_AT_BASIC_N_C_IDX = 0,
LIOT_AT_BASIC_N_D_IDX,
LIOT_AT_BASIC_N_E_IDX,
LIOT_AT_BASIC_N_F_IDX,
LIOT_AT_BASIC_N_S_IDX,
LIOT_AT_BASIC_N_V_IDX,
LIOT_AT_BASIC_N_W_IDX,
LIOT_AT_BASIC_E_IDX,
LIOT_AT_BASIC_I_IDX,
LIOT_AT_BASIC_L_IDX,
LIOT_AT_BASIC_M_IDX,
LIOT_AT_BASIC_Q_IDX,
LIOT_AT_BASIC_V_IDX,
LIOT_AT_BASIC_X_IDX,
LIOT_AT_BASIC_Z_IDX,
LIOT_AT_BASIC_T_IDX,
LIOT_AT_BASIC_P_IDX,
} liot_atcmd_basic_type_e;
3.3 liot_at_result_enum_type
AT指令的返回类型:
声明
typedef enum
{
LIOT_AT_NO_RSP = -1,
LIOT_AT_OK = 0,
LIOT_AT_CONNECT = 1,
LIOT_AT_RING = 2,
LIOT_AT_NO_CARRIER = 3,
LIOT_AT_ERROR = 4,
LIOT_AT_CME_ERROR = 100,
} liot_at_result_enum_type;
参数
LIOT_AT_NO_RSP:AT指令无响应。
LIOT_AT_OK:AT指令响应成功。
LIOT_AT_CONNECT: AT指令继续执行
LIOT_AT_RING: AT指令正在执行
LIOT_AT_ERROR:AT指令错误
LIOT_AT_CME_ERROR:AT指令执行错误
3.4 liot_atCommand_Input
AT指令的输入参数:
声明
typedef struct liot_atCommand_Input_t
{
CHAR name[LIOT_AT_CMD_NAME_MAX_LEN + 1];
UINT8 op;
liot_atHandle atHandle;
UINT8 args_count;
CHAR *arg[LIOT_AT_CMD_MAX_ARG];
} liot_atCommand_Input;
参数
类型 |
参数 |
描述 |
|---|---|---|
CHAR |
name |
AT指令名 |
UINT8 |
op |
AT指令执行类型,参照4.1 |
liot_atHandle |
atHandle |
AT执行句柄 |
UINT8 |
args_count |
参数个数 |
CHAR * |
arg |
指令参数内容 |
3.5 liot_atCommand
AT指令格式的声明定义:
声明
typedef struct liot_atCommand_t
{
const CHAR *pName;
liot_at_result_enum_type (*atProcFunc)(const liot_atCommand_Input *pAtInputCtx);
} liot_atCommand, *liot_atCommandP;
参数
类型 |
参数 |
描述 |
|---|---|---|
const CHAR* |
pName |
AT指令名 |
liot_at_result_enum_type |
atProcFunc |
AT函数名称 |
3.6 liot_atMsgId_e
AT指令消息ID类型的枚举定义如下:
声明
typedef enum
{
LIOT_AT_MIN_MSG = 0,
LIOT_AT_URC_MSG,
LIOT_AT_SIO_MSG,
LIOT_AT_SIM_MSG,
LIOT_AT_FILE_MSG,
LIOT_AT_SOCKET_MSG,
LIOT_AT_NTP_MSG,
LIOT_AT_PING_MSG,
LIOT_AT_HTTP_MSG,
LIOT_AT_CTCC_SREG_MSG,
LIOT_AT_FTP_MSG,
LIOT_AT_MQTT_MSG,
LIOT_AT_LBS_MSG,
LIOT_AT_LWM2M_MSG,
LIOT_AT_CMCC_DM_MSG,
LIOT_AT_CTWING_MSG,
LIOT_AT_PDP_MSG,
LIOT_AT_DNS_MSG,
LIOT_AT_MAX_MSG
} liot_atMsgId_e;
参数
LIOT_AT_MIN_MSG :最小消息ID。
LIOT_AT_URC_MSG:AT指令的URC消息ID。
LIOT_AT_SIO_MSG: IO的消息ID
LIOT_AT_SIM_MSG: SIM卡的消息ID
LIOT_AT_FILE_MSG:文件系统的消息ID
LIOT_AT_SOCKET_MSG: socket消息ID
LIOT_AT_NTP_MSG: NTP消息ID
LIOT_AT_PING_MSG: PING消息ID
LIOT_AT_CTCC_SREG_MSG: 电信自注册消息ID
LIOT_AT_FTP_MSG: FTP消息ID
LIOT_AT_HTTP_MSG: FTP消息ID
LIOT_AT_MQTT_MSG: MQTT消息ID
LIOT_AT_LBS_MSG:LBS消息ID
LIOT_AT_LWM2M_MSG: LWM2M消息ID
LIOT_AT_CMCC_DM_MSG: 移动自注册消息ID
LIOT_AT_CTWING_MSG: CTWING消息ID
LIOT_AT_PDP_MSG: PDP消息ID
LIOT_AT_DNS_MSG: DNS消息ID
LIOT_AT_MAX_MSG: 最大消息ID
4 API 函数详解
4.1 liot_atcmd_reply
该函数用于返回AT指令执行后的结果,将结果以及错误码返回到串口。
声明
int liot_atcmd_reply(liot_atHandle atHandle, liot_at_result_enum_type result_code, const CHAR *resp_str);
参数
liot_atHandle :[In] AT指令句柄。
result_code:[In] AT指令执行结果码。
resp_str:[In] 返回字符串信息。
返回值
int :执行结果码,请参考 4.2。
4.2 liot_open_atcmd_init
该函数用于初始化 及使能AT指令表。
声明
void liot_open_atcmd_init(void)
参数
void 。
返回值
void 。
4.3 liot_atcmd_register
该函数用于注册AT指令表。
声明
void liot_atcmd_register(const liot_atCommandP tab_ptr, const UINT32 tab_size);
参数
tab_ptr:[In] AT指令表地址。
tab_size:[In] AT指令表的大小。
返回值
void 。
需求
5 代码示例
示例代码参考 examples/demo/src/demo_atcmd.c。如下运行结果则说明获取所有信息正常:
其他问题
