Link Kit C-SDK  4.0.0
| 宏定义 | 类型定义 | 枚举 | 函数
aiot_at_api.h 文件参考

AT模块头文件, 提供对接AT模组的能力 更多...

#include <stdint.h>
#include "core_list.h"
#include "aiot_sysdep_api.h"
aiot_at_api.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  core_at_cmd_item_t
 AT命令请求响应结构体定义 更多...
 
struct  core_at_urc_item_t
 AT主动上报命令 更多...
 
struct  core_at_recv_data_prefix
 AT主动上报接收的数据,可识别头 更多...
 
struct  at_device_t
 AT设备结构化数据 更多...
 
struct  core_ringbuf_t
 ringbuf结构体定义 更多...
 
struct  link_descript_t
 数据链路上下文结构体 更多...
 
struct  core_at_read_t
 
struct  core_at_handle_t
 AT组件上下文数据结构体 更多...
 

宏定义

#define MODULE_NAME_AT   "AT"
 
#define STATE_AT_BASE   (-0x1000)
 -0x1000~-0x10FF表达SDK在AT模块内的状态码 更多...
 
#define STATE_AT_ALREADY_INITED   (-0x1003)
 
#define STATE_AT_NOT_INITED   (-0x1004)
 
#define STATE_AT_UART_TX_FUNC_MISSING   (-0x1005)
 
#define STATE_AT_GET_RSP_FAILED   (-0x1006)
 
#define STATE_AT_RINGBUF_OVERFLOW   (-0x1007)
 
#define STATE_AT_RX_TIMEOUT   (-0x1008)
 
#define STATE_AT_NO_AVAILABLE_LINK   (-0x1009)
 
#define STATE_AT_TX_TIMEOUT   (-0x100A)
 
#define STATE_AT_TX_ERROR   (-0x100B)
 
#define STATE_AT_RINGBUF_NO_DATA   (-0x100C)
 
#define STATE_AT_UART_TX_FUNC_NULL   (-0x100D)
 
#define STATE_AT_NO_DATA_SLOT   (-0x100F)
 
#define STATE_AT_LINK_IS_DISCONN   (-0x1010)
 
#define STATE_AT_UART_TX_FAILED   (-0x1011)
 
#define AIOT_AT_CMD_LEN_MAXIMUM   (128) /* AT命令最大长度 */
 AT组件配置参数 更多...
 
#define AIOT_AT_RSP_LEN_MAXIMUM   (128) /* AT应答最大长度 */
 
#define AIOT_AT_TX_TIMEOUT_DEFAULT   (10000) /* UART默认发送超时时间 */
 
#define AIOT_AT_RX_TIMEOUT_DEFAULT   (10000) /* UART默认接受等待超时时间 */
 
#define AIOT_AT_DATA_RB_SIZE_DEFAULT   (4096) /* 内部网络数据接收缓冲区大小,用户可根据接收数据流量的大小调整 */
 
#define AIOT_AT_RSP_RB_SIZE_DEFAULT   (4096) /* 内部应答报文接受缓冲区大小,用户可根据接收数据流量的大小调整 */
 
#define AIOT_AT_CMD_RETRY_TIME   (3) /* AT命令发送重试最大次数 */
 
#define AIOT_AT_RINGBUF_RETRY_INTERVAL   (5) /* RINGBUF数据长度检查间隔时间 */
 
#define AIOT_AT_SOCKET_NUM   (5) /* 支持的数据链路数量 */
 
#define AIOT_AT_MAX_PACKAGE_SIZE   (1460) /* 一帧报文最大的数据长度*/
 
#define AT_SOCKET_ID_START   (1)
 

类型定义

typedef int32_t(* aiot_at_uart_tx_func_t) (const uint8_t *p_data, uint16_t len, uint32_t timeout)
 串口发送回调函数定义 更多...
 
typedef enum rsp_result_t at_rsp_result_t
 
typedef at_rsp_result_t(* at_rsp_handler_t) (char *rsp)
 接受到应答数据后的用户处理回调函数原型定义 更多...
 
typedef void(* at_urc_handler_t) (char *line)
 接受到应答数据后的用户处理回调函数原型定义 更多...
 

枚举

enum  aiot_at_option_t { AIOT_ATOPT_UART_TX_FUNC, AIOT_ATOPT_USER_DATA, AIOT_ATOPT_DEVICE, AIOT_ATOPT_MAX }
 AT组件配置选项 更多...
 
enum  rsp_result_t { AT_RSP_SUCCESS, AT_RSP_WAITING, AT_RSP_FAILED }
 
enum  core_at_link_status_t { CORE_AT_LINK_DISABLE = 0, CORE_AT_LINK_DISCONN = 1, CORE_AT_LINK_CONN = 2 }
 模组数据链路状态 更多...
 
enum  core_ip_status_t {
  IP_DEINIT, IP_CSQ_ERROR, IP_CARD_ERROR, IP_ERR_OTHER,
  IP_SUCCESS
}
 

函数

int32_t aiot_at_init (void)
 初始化AT组件 更多...
 
int32_t aiot_at_setopt (aiot_at_option_t opt, void *data)
 配置AT组件, 主要为配置串口发送回调函数 更多...
 
int32_t aiot_at_bootstrap (void)
 模组启动, 内部发送模组相关的AT命令已启动模组, 启动完成后, 模组将获取到IP地址 更多...
 
int32_t aiot_at_nwk_open (uint8_t *socket_id)
 为对应的链路ID创建ringbuf资源 更多...
 
int32_t aiot_at_nwk_connect (uint8_t socket_id, const char *host, uint16_t port, uint32_t timeout)
 内部会调用模组相关的AT命令, 通过串口发送TCP建连命令。可对接到core_sysdep_network_establish网络接口 更多...
 
int32_t aiot_at_nwk_send (uint8_t socket_id, const uint8_t *buffer, uint32_t len, uint32_t timeout)
 内部会调用模组相关的AT命令, 通过串口发送TCP数据。可对接到core_sysdep_network_send网络接口 更多...
 
int32_t aiot_at_nwk_recv (uint8_t socket_id, uint8_t *buffer, uint32_t len, uint32_t timeout_ms)
 内部会从对应的数据ringbu中读取网络数据, 可对接到core_sysdep_network_recv网络接口 更多...
 
int32_t aiot_at_nwk_close (uint8_t socket_id)
 内部会调用模组相关的AT命令, 关闭连接链路。可对接到core_sysdep_network_deinit网络接口 更多...
 
int32_t aiot_at_hal_recv_handle (uint8_t *data, uint32_t size)
 为AT组件提供串口数据 更多...
 
int32_t aiot_at_deinit (void)
 反初始化AT组件 更多...
 
int32_t core_at_ip_status (core_ip_status_t status)
 
int32_t core_at_socket_status (uint32_t id, core_at_link_status_t status)
 

详细描述

AT模块头文件, 提供对接AT模组的能力

日期
2019-12-27

宏定义说明

#define MODULE_NAME_AT   "AT"
#define STATE_AT_BASE   (-0x1000)

-0x1000~-0x10FF表达SDK在AT模块内的状态码

#define STATE_AT_ALREADY_INITED   (-0x1003)
#define STATE_AT_NOT_INITED   (-0x1004)
#define STATE_AT_UART_TX_FUNC_MISSING   (-0x1005)
#define STATE_AT_GET_RSP_FAILED   (-0x1006)
#define STATE_AT_RINGBUF_OVERFLOW   (-0x1007)
#define STATE_AT_RX_TIMEOUT   (-0x1008)
#define STATE_AT_NO_AVAILABLE_LINK   (-0x1009)
#define STATE_AT_TX_TIMEOUT   (-0x100A)
#define STATE_AT_TX_ERROR   (-0x100B)
#define STATE_AT_RINGBUF_NO_DATA   (-0x100C)
#define STATE_AT_UART_TX_FUNC_NULL   (-0x100D)
#define STATE_AT_NO_DATA_SLOT   (-0x100F)
#define STATE_AT_LINK_IS_DISCONN   (-0x1010)
#define STATE_AT_UART_TX_FAILED   (-0x1011)
#define AIOT_AT_CMD_LEN_MAXIMUM   (128) /* AT命令最大长度 */

AT组件配置参数

#define AIOT_AT_RSP_LEN_MAXIMUM   (128) /* AT应答最大长度 */
#define AIOT_AT_TX_TIMEOUT_DEFAULT   (10000) /* UART默认发送超时时间 */
#define AIOT_AT_RX_TIMEOUT_DEFAULT   (10000) /* UART默认接受等待超时时间 */
#define AIOT_AT_DATA_RB_SIZE_DEFAULT   (4096) /* 内部网络数据接收缓冲区大小,用户可根据接收数据流量的大小调整 */
#define AIOT_AT_RSP_RB_SIZE_DEFAULT   (4096) /* 内部应答报文接受缓冲区大小,用户可根据接收数据流量的大小调整 */
#define AIOT_AT_CMD_RETRY_TIME   (3) /* AT命令发送重试最大次数 */
#define AIOT_AT_RINGBUF_RETRY_INTERVAL   (5) /* RINGBUF数据长度检查间隔时间 */
#define AIOT_AT_SOCKET_NUM   (5) /* 支持的数据链路数量 */
#define AIOT_AT_MAX_PACKAGE_SIZE   (1460) /* 一帧报文最大的数据长度*/
#define AT_SOCKET_ID_START   (1)

类型定义说明

typedef int32_t(* aiot_at_uart_tx_func_t) (const uint8_t *p_data, uint16_t len, uint32_t timeout)

串口发送回调函数定义

参数
[in]p_data
[in]len
[in]timeout
返回
int32_t
返回值
length,实际发送的字节数
0,发送超时
-1,发送失败
typedef at_rsp_result_t(* at_rsp_handler_t) (char *rsp)

接受到应答数据后的用户处理回调函数原型定义

参数
[in]rspAT命令的应答数据
返回
rsp_result_t
typedef void(* at_urc_handler_t) (char *line)

接受到应答数据后的用户处理回调函数原型定义

参数
[in]lineAT命令的一行数据
返回
int32_t
返回值
>=0,
<0,

枚举类型说明

AT组件配置选项

枚举值
AIOT_ATOPT_UART_TX_FUNC 
AIOT_ATOPT_USER_DATA 
AIOT_ATOPT_DEVICE 
AIOT_ATOPT_MAX 
枚举值
AT_RSP_SUCCESS 
AT_RSP_WAITING 
AT_RSP_FAILED 

模组数据链路状态

枚举值
CORE_AT_LINK_DISABLE 
CORE_AT_LINK_DISCONN 
CORE_AT_LINK_CONN 
枚举值
IP_DEINIT 
IP_CSQ_ERROR 
IP_CARD_ERROR 
IP_ERR_OTHER 
IP_SUCCESS 

函数说明

int32_t aiot_at_init ( void  )

初始化AT组件

返回
int32_t
返回值
=0初始化成功
<0初始化失败

AT moduel API start

函数调用图:

int32_t aiot_at_setopt ( aiot_at_option_t  opt,
void *  data 
)

配置AT组件, 主要为配置串口发送回调函数

参数
opt配置项
data配置数据
返回
int32_t
返回值
=0配置成功
<0配置失败

函数调用图:

int32_t aiot_at_bootstrap ( void  )

模组启动, 内部发送模组相关的AT命令已启动模组, 启动完成后, 模组将获取到IP地址

返回
int32_t
返回值
=0启动成功
<0启动失败

函数调用图:

int32_t aiot_at_nwk_open ( uint8_t *  socket_id)

为对应的链路ID创建ringbuf资源

参数
socket_id链路ID
返回
int32_t
返回值
=0操作成功
<0操作失败

函数调用图:

int32_t aiot_at_nwk_connect ( uint8_t  socket_id,
const char *  host,
uint16_t  port,
uint32_t  timeout 
)

内部会调用模组相关的AT命令, 通过串口发送TCP建连命令。可对接到core_sysdep_network_establish网络接口

参数
socket_id链路ID
host主机名
port端口号
timeout建连超时时间
返回
int32_t
返回值
>=0建连成功
<0建连失败

函数调用图:

int32_t aiot_at_nwk_send ( uint8_t  socket_id,
const uint8_t *  buffer,
uint32_t  len,
uint32_t  timeout 
)

内部会调用模组相关的AT命令, 通过串口发送TCP数据。可对接到core_sysdep_network_send网络接口

参数
socket_id链路ID
buffer指向外部数据缓冲区的指针
len数据长度
timeout发送超时时间
返回
int32_t
返回值
>=0已发送的数据长度
<0发送失败

函数调用图:

int32_t aiot_at_nwk_recv ( uint8_t  socket_id,
uint8_t *  buffer,
uint32_t  len,
uint32_t  timeout_ms 
)

内部会从对应的数据ringbu中读取网络数据, 可对接到core_sysdep_network_recv网络接口

参数
socket_id链路ID
buffer指向外部数据缓冲区的指针
len外部数据缓冲区大小
timeout_ms接收超时时间
返回
int32_t
返回值
>=0读取到的数据长度
<0读取失败

函数调用图:

int32_t aiot_at_nwk_close ( uint8_t  socket_id)

内部会调用模组相关的AT命令, 关闭连接链路。可对接到core_sysdep_network_deinit网络接口

参数
socket_id链路ID
返回
int32_t
返回值
=0操作成功
<0操作失败

函数调用图:

int32_t aiot_at_hal_recv_handle ( uint8_t *  data,
uint32_t  size 
)

为AT组件提供串口数据

参数
data字节数据
返回
int32_t
返回值
>=0操作成功,返回已经消费掉的数据
<0操作失败

函数调用图:

int32_t aiot_at_deinit ( void  )

反初始化AT组件

返回
int32_t

函数调用图:

int32_t core_at_ip_status ( core_ip_status_t  status)
int32_t core_at_socket_status ( uint32_t  id,
core_at_link_status_t  status 
)