AT模块头文件, 提供对接AT模组的能力
更多...
#include <stdint.h>
#include "core_list.h"
#include "aiot_sysdep_api.h"
浏览源代码.
|
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
- 版权所有
- Copyright (C) 2015-2018 Alibaba Group Holding Limited
#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命令最大长度 */ |
#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,发送失败 | |
接受到应答数据后的用户处理回调函数原型定义
- 参数
-
- 返回
- rsp_result_t
typedef void(* at_urc_handler_t) (char *line) |
接受到应答数据后的用户处理回调函数原型定义
- 参数
-
- 返回
- int32_t
- 返回值
-
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
- 返回值
-
AT moduel API start
配置AT组件, 主要为配置串口发送回调函数
- 参数
-
- 返回
- int32_t
- 返回值
-
int32_t aiot_at_bootstrap |
( |
void |
| ) |
|
模组启动, 内部发送模组相关的AT命令已启动模组, 启动完成后, 模组将获取到IP地址
- 返回
- int32_t
- 返回值
-
int32_t aiot_at_nwk_open |
( |
uint8_t * |
socket_id | ) |
|
为对应的链路ID创建ringbuf资源
- 参数
-
- 返回
- int32_t
- 返回值
-
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
- 返回值
-
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
- 返回值
-
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
- 返回值
-
int32_t aiot_at_nwk_close |
( |
uint8_t |
socket_id | ) |
|
内部会调用模组相关的AT命令, 关闭连接链路。可对接到core_sysdep_network_deinit网络接口
- 参数
-
- 返回
- int32_t
- 返回值
-
int32_t aiot_at_hal_recv_handle |
( |
uint8_t * |
data, |
|
|
uint32_t |
size |
|
) |
| |
为AT组件提供串口数据
- 参数
-
[in] | data | 接收的数据 |
[in] | size | 接收的数据长度 |
- 返回
- int32_t
- 返回值
-
>=0 | 操作成功,返回已经消费掉的数据 |
<0 | 操作失败 |
int32_t aiot_at_deinit |
( |
void |
| ) |
|